3
我一直在努力让用户移动标记而不拖动。基本上,用户点击标记并打开信息窗口泡泡。在泡泡中是指向地图上设置点击事件的JavaScript函数的链接。当用户在地图上的某处点击时,应该将标记移动到点击位置。openlayers标记moveTo只在特定的缩放级别准确
在我的地图中,我有18个缩放级别。在缩放级别15时,此过程完美运行。如果我点击一次后放大,标记仍会移动到我点击的位置。但是,如果我刷新并以缩放级别16重新开始并尝试点击某处,则标记将移动到更高的位置并且更靠左。以更高的缩放级别重复此过程,标记将进一步向上移至地图左侧(距离)。
在缩放级别低于15时进行上述操作也很好。
这里的代码片段:
lmLayer = new OpenLayers.Layer.Markers("Landmark Creation");
map.addLayer(lmLayer);
var marker = landmark['landmark_1234'];// this just pulls the marker out of storage
map.events.register("click", lmLayer, function(evt){
var pixel = new OpenLayers.Pixel(evt.clientX,evt.clientY);
marker.moveTo(pixel);
OpenLayers.Event.stop(evt);
});
我已经控制台注销clientX和clientY点击和他们做登记正确的X/Y从浏览器的左侧和顶部边缘坐标。但它似乎是错误的计算moveTo在缩放级别15.
任何想法?
什么坐标系?他们是如何申报的? – 2011-03-15 11:36:24