Jak widać w poniższym kodzie, znaczniki można przeciągać. W niektórych przypadkach Jeśli znacznik zostanie upuszczony w niewłaściwym obszarze (wielokącie), chciałbym anulować zdarzenie upuszczenia i w konsekwencji znacznik automatycznie powróci do swojej pierwotnej lokalizacji.Jak anulować operację przeciągania znacznika mapy google?
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;
}
Powstaje pytanie w jaki sposób mogę anulować zdarzenie przeciągania znacznika, gdy jest już spadła w dragend
wydarzenia?
Dlaczego nie wystarczy użyć InfoWindow pokazać markera lat/lng, a nie robić znacznik Draggable w ogóle? –
Po prostu zadeklaruj ich właściwość przeciągalną jako wartość false, a ich klikalną właściwość jako prawdziwą. Nadal będą słuchać kliknięć i wydarzeń najedź myszką. – amenadiel
@MattBall Muszę być przeciągalny. –