Вопрос

я использую GoogleMaps, и у меня есть 2 или более маркера, и их можно перетаскивать.Я хочу привязать 2 маркера, если они находятся рядом, и объединить их в 1.возможно ли это ?

Может кто - нибудь дать мне советы ..как я могу это осознать ?

Это было полезно?

Решение

Вам нужно справиться с событие перетаскивания на GMarker ( ГМаркер ) объект.Хитрость заключается в том, что вы делаете, когда обнаруживаете, что находитесь достаточно близко к другому маркеру, чтобы соединить их вместе.Я немного поиграл вокруг да около учитывая это, я подумал, что, возможно, хорошим способом было бы скрыть перетаскиваемый в данный момент маркер.

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)
    }
}

Не совсем элегантное решение, но оно может подойти для ваших целей.

Редактировать:Мне было интересно, ищете ли вы код для проверки близлежащих точек, поэтому я обновил свой пример, чтобы сделать это:

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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top