我想編寫一個簡單的捕捉功能在谷歌地圖V3.9編輯多邊形經緯度位置谷歌地圖多邊形編輯 - 得到的mouseup
我有地圖,可進行編輯的一個在幾個多邊形一次。 當一個可編輯的時候,我也添加一個監聽器,當一個頂點被拖動時觸發。
由於存在用於google.maps.Polygon
沒有拖動事件,我添加mousedown
監聽器,它檢查是否一個頂點是光標下,如果這樣增加了一個mouseup
偵聽器。 此mouseup
偵聽器中的代碼將檢查所有其他多邊形的頂點,如果找到近似匹配,則更新拖動頂點。
這個效果很好,除了一個問題。該檢查使用由mouseup
聽衆返回的PolyMouseEvent
的latLng
屬性執行。該屬性指向之前的頂點的位置,並且我無法找到在其新位置引用頂點的方式。
dragListener = google.maps.event.addListener(poly1, "mousedown", function(dragData) {
// if dragging a vertex
if (dragData.vertex != null) {
// perform snap on mouseup
snapListener = google.maps.event.addListener(poly1, "mouseup", function(mouseData) {
var editingVertex = mouseData.vertex;
var draggedLatLng = mouseData.latLng;
// code here to compare draggedLatLng with latLng of editingVertex
// and perform snap, which seems to work fine as is...
}
}
}
我正試圖實現同樣的目標,並且我找不到任何解決方案... – Catalin 2013-01-26 13:03:44
我寫了一個庫來解決這個問題。請看[我的答案在這裏](http://stackoverflow.com/a/33338065/568884) – 2015-10-30 00:02:44