gpt4 book ai didi

javascript - 如何取消谷歌地图标记拖动操作?

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:07 24 4
gpt4 key购买 nike

如您在以下代码中所见,标记是可拖动的。在某些情况下,如果标记被放置在错误的区域(多边形)中,我想取消放置事件,因此标记会自动回到其原始位置。

function placeMarker(latlng, color, isDraggable) {
var marker = new GMarker(latlng, { icon: getIcon(color), draggable: true });
map.addOverlay(marker);
GEvent.addListener(marker, "dragend", function () {
//redraw polygons again
});
GEvent.addListener(marker, "click", function () {
var latlng = marker.getPoint();
map.openInfoWindowHtml(marker.getPoint(), latlng.y + ", " + latlng.x);
});
return marker;
}

问题是当marker 已经在dragend 事件中放置时,如何取消它的拖动事件?

最佳答案

这么多年了还是没找到解决办法,又遇到这个问题。我希望有 event.cancelDrag() 可以调用。

我能想到的就是检查标记是否属于 mypolygon 如果不将其移回之前的位置:

  • dragstart 上将当前位置保存为 preLocation
  • dragend 上使用 containsLocation(e.latLng, mypolygon)
    • 是 => 什么都不做
    • 否:将标记位置设置为preLocation

google map containsLocation

google map Events

关于javascript - 如何取消谷歌地图标记拖动操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com