Ajustar a marcador más cercano
-
18-09-2019 - |
Pregunta
estoy usando GoogleMaps y tengo 2 o más marcadores y se pueden arrastrar. Quiero romper 2 marcadores si están cerca y fusionarlas en 1. es esto posible?
Puede alguien darme punteros .. cómo puedo darse cuenta de que?
Solución
Es necesario para manejar los href="http://code.google.com/apis/maps/documentation/reference.html#GMarker.drag" evento de arrastre en el objeto de la GMarker . El truco es, ¿qué hacer cuando detecte que son lo suficientemente cerca de otro marcador para romper juntos. Me jugado alrededor de un pequeño con esto y pensó que tal vez ocultar el marcador actualmente arrastrado podría ser un buen camino a seguir.
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)
}
}
No es una solución totalmente elegante, pero puede ser que se adapte a sus propósitos.
Editar : Me preguntaba si estaban buscando el código para comprobar puntos cercanos, por lo que he actualizado mi ejemplo para hacer esto:
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;
}