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?

¿Fue útil?

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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top