【发布时间】:2011-07-05 01:34:58
【问题描述】:
正如您在以下代码中看到的,标记是可拖动的。在某些情况下,如果标记被放置在错误的区域(多边形)中,我想取消放置事件,因此标记会自动回到原来的位置。
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;
}
问题是标记的拖动事件已经在dragend事件中被删除了,如何取消它?
【问题讨论】:
-
为什么不直接使用 InfoWindow 来显示标记的 lat/lng,而根本不让标记可拖动?
-
只需将它们的可拖动属性声明为假,将可点击属性声明为真。他们仍然会监听点击和鼠标悬停事件。
-
@MattBall 我需要可拖动。
标签: javascript google-maps draggable marker