我正在尝试编写一个简单的捕捉函数,用于在Google Maps v3.9中编辑多边形。
地图上有几个多边形,每次只能使一个多边形可编辑。当一个多边形被设置为可编辑时,我还会添加一个监听器,以便在拖动顶点时触发。
由于
这个方法很有效,但是有一个问题。使用
地图上有几个多边形,每次只能使一个多边形可编辑。当一个多边形被设置为可编辑时,我还会添加一个监听器,以便在拖动顶点时触发。
由于
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...
}
}
}