我创建了一个谷歌地图并在其上绘制了折线.然后我在polyine的起点添加了一个标记(与折线的起始坐标相同的坐标).
我希望能够做的是抓住并拖动标记,但让它"粘"到折线上,这样你只能沿着折线拖动它而不是远离它或者它的侧面.
是否可以将可拖动标记限制在GM V3的路径中?如果没有,有谁能想到如何做到这一点?当用户放下标记时,有可能将标记捕捉到路径上最近的点,但我更喜欢更顺畅的"沿路径拖动"效果.
很高兴有ArcGis的建议.没有提供代码,因为这更像是一个理论问题.
如果我需要进一步解释,请告诉我.
提前致谢
我正在尝试编写一个简单的捕捉功能,用于在 Google Maps v3.9 中编辑多边形
我在地图上有几个多边形,可以一次编辑一个。当一个可编辑时,我还会向它添加一个侦听器,以在拖动顶点时触发。
由于没有拖动事件google.maps.Polygon,我添加了一个mousedown侦听器,它检查顶点是否在光标下方,如果是,则添加一个mouseup侦听器。此mouseup侦听器中的代码检查所有其他多边形的顶点,并在找到接近匹配的情况下更新拖动顶点。
这很有效,除了一个问题。使用侦听器返回的latLng属性执行检查。此属性指向拖动之前顶点的位置,我找不到在新位置引用顶点的方法。PolyMouseEventmouseup
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 …Run Code Online (Sandbox Code Playgroud)