Snap a marcatore più vicino
-
18-09-2019 - |
Domanda
sto usando GoogleMaps e ho 2 o più marcatori e sono trascinabili. Voglio scattare 2 marcatori se sono vicini e unirle in 1. è possibile?
Qualcuno può darmi puntatori .. come posso capire che?
Soluzione
È necessario gestire le href="http://code.google.com/apis/maps/documentation/reference.html#GMarker.drag" evento di trascinamento nella GMarker oggetto. Il trucco è quello che si fa quando si rileva che vi sono abbastanza vicino ad un altro marcatore per scattare insieme. I giocato un po 'un po' con questo e pensato che forse nasconde il marcatore attualmente trascinato potrebbe essere un buon modo per andare.
GEvent.addListener(marker, "drag", function(point) {
// iterate over your points and for each otherPoint...
if (near (point, otherPoint))
{
// hide this marker
marker.hide ();
// move nearby marker to indicate merge?
// then delete the dragged marker on the dragend (if it was merged)
}
}
Non è una soluzione del tutto elegante, ma potrebbe soddisfare i vostri scopi.
Modifica : Mi chiedevo se si stesse cercando il codice per controllare luoghi, così ho aggiornato il mio esempio per farlo:
function near (point1, point2)
{
sw = new GLatLng(point2.lat() - 0.005, point2.lng() - 0.005);
ne = new GLatLng(point2.lat() + 0.005, point2.lng() + 0.005);
var bounds = new GLatLngBounds(sw, ne);
if (bounds.contains (point1))
return true;
return false;
}