Как узнать, какой маркер перетаскивается на событие перетаскивания API Карт Google? - PullRequest
2 голосов
/ 09 сентября 2011

Каждое событие "drag", "dragstart" и "dragend" в API Карт Google V3 передает mouseEvent зарегистрированной функции обратного вызова.

Однако - это событие не содержит никакой информации относительно , какой маркер перетаскивается. Как я могу это определить?

Это еще сложнее, если вы просто смотрите на событие "dragend", которое будет иметь только новые координаты, что делает невозможным даже вывод из координат.

Я предполагаю, что должен быть простой способ определить, какой маркер перетаскивается ...

1 Ответ

2 голосов
/ 10 сентября 2011

Я бы добавил, добавив событие перетаскивания к маркеру, используя слушателя при его создании.

google.maps.event.addListener(marker, 'dragend', function() {
                //do something with the event.
            });

вот пример скрипта: http://jsfiddle.net/2YQg6/10/ (Не возражайте против других вещей, которые я простоотредактировал скрипку, которую я использовал ранее для обработки перетаскиваемых маркеров.)

Соответствующий код находится в цикле создания маркера:

//geo code and build markers for each list item.
for (var i = 0; i < $listItems.length; i++) {
    geocoder.geocode({
        'address': $($listItems[i]).text()
    }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var marker = new google.maps.Marker({
                position: results[0].geometry.location,
                map: map,
                draggable: true,
                originalPos: results[0].geometry.location
            });

            google.maps.event.addListener(marker, 'dragend', function() {
                infoWindow.setContent("marker originally at this position: " + this.originalPos + " was dragged to: " + this.position);
                infoWindow.open(map, this);
            });


            markers.push(marker);
        }        

});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...