【发布时间】:2015-10-26 14:44:05
【问题描述】:
我正在尝试编写一个简单的捕捉功能,用于在 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...
}
}
}
【问题讨论】:
-
我正在尝试实现同样的目标,但我找不到任何解决方案...
-
我写了一个库来解决这个问题。请看my answer here