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