Google Maps - добавить два маркера (направления) - PullRequest
2 голосов
/ 28 апреля 2009

Игра с Google Maps в эти дни, с некоторыми направлениями.

У меня есть карта, которая получает направления и адрес (обратное геокодирование) при перетаскивании маркеров.

Если на карте есть два узла (http://dev.korebogen.dk/gmap/)), скрипт работает нормально (щелчок устанавливает направления) - но мне нужно добавить событие щелчка, чтобы я мог поместить эти два маркера вместо жесткого кода местоположение вручную, но все еще можно перетаскивать их - или размещать новые с новым щелчком. Но мне нужны только маркеры от A до B.

Я играл с некоторыми событиями кликов, но, похоже, я не могу выполнить то, что ищу - надеюсь увидеть здесь некоторую помощь. Большое спасибо.

1 Ответ

4 голосов
/ 28 апреля 2009

Этот код позволит вам щелкнуть и разместить два маркера, которые затем можно использовать для загрузки GDirections и удаления исходных маркеров. Обратите внимание, что вы должны использовать этот формат для строки запроса: "from: marker @ 35, -25 to: marker @ -20,15".

var markerArray = [];

var listener = GEvent.addListener(map, "click", function(overlay, latlng) {
    var marker = new GMarker(latlng, { draggable: true });
    map.addOverlay(marker);
    markerArray.push(marker);
    if (markerArray.length > 1) {
        GEvent.removeListener(listener);
        var marker1 = markerArray[0];
        var marker2 = markerArray[1];

        gdir.load("from: marker1@" + marker1.getLatLng() + " to: marker2@" + marker2.getLatLng());

        map.removeOverlay(marker1);
        map.removeOverlay(marker2);
    }
});
...