Маркер Google Maps Перетащите конец направления - Очистить предыдущий маршрут - PullRequest
1 голос
/ 05 декабря 2011

Я использую Google Maps API v3, и я реализовал направления, отображаемые на основе функции перетаскивания маркера.Но если перетащить маркер снова, исходный набор направлений не будет удален.

Карта создается на основе запроса геокодирования и текстового поля автозаполнения для источника, а пункт назначения является статическим.Это все отлично работает.Я прочитал документацию по API, и там написано .setMap (null);вариант, но это не очистка направления, и я считаю, что это потому, что я не восстанавливаю карту.Мой код для рендеринга указаний приведен ниже:

google.maps.event.addListener(markersrc, 'dragend', function () {
    geocoder.geocode({ 'latLng': markersrc.getPosition() }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var request = {
                origin: markersrc.getPosition(),
                destination: markerdst.getPosition(),
                travelMode: google.maps.DirectionsTravelMode.DRIVING
            };
            var directionsDisplay = new google.maps.DirectionsRenderer();
            var directionsService = new google.maps.DirectionsService();
            directionsDisplay.suppressMarkers = true;
            directionsDisplay.setMap(map);
            directionsDisplay.setPanel(document.getElementById("directions_panel"));
            directionsService.route(request, function (response, status) {
                if (status == google.maps.DirectionsStatus.OK) {
                    directionsDisplay.setDirections(response);
                }
            });
        }
    });
});

Кто-нибудь знает, как можно очистить исходные указания?

1 Ответ

1 голос
/ 05 декабря 2011

Мне кажется, что каждый раз, когда вы перетаскиваете маркер, вы воссоздаете DirectionsDisplay и DirectionsService. Вместо этого я думаю, что вам нужно создать их как глобальные переменные, которые обновляются только слушателем событий dragend.

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