Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отмена функции связанной с JS API google.maps (https://javascript.ru/forum/events/50962-otmena-funkcii-svyazannojj-s-js-api-google-maps.html)

mr__brainwash 19.10.2014 00:15

Отмена функции связанной с JS API google.maps
 
Здравствуйте. Задача связанна с JS API google maps. После заполнений двух полей с адресами, вызывается функция, которая прокладывает маршрут между этими двумя точками. Так же, после заполнения этих двух полей появляется кнопка "Удалить маршрут". Нужно, чтобы при нажатии на эту кнопку, отменялось действие функции, которая проложила маршрут. Чтобы этот маршрут пропал. Код функции, которая прокладывает маршрут:

var route = function(){
                if((route_from === null) || (route_to === null)) return;
                if(from_marker !== null) {
                    from_marker.setMap(null);
                }
                if(to_marker !== null) {
                    to_marker.setMap(null);
                }
                var request = {
                    origin: route_from,
                    destination: route_to,
                    travelMode: google.maps.DirectionsTravelMode.DRIVING,
                    unitSystem : google.maps.DirectionsUnitSystem.METRIC,
                    region: 'de'
                }

                directionsService.route(request, function(response, status) {
                    // console.log('Route done', response, status);
                    if (status == google.maps.DirectionsStatus.OK) {
                        directionsDisplay.setDirections(response);
                    }
                });

            };


Вот здесь, эта функция вызывается для прокладки маршрута:

var delRoutBtn = document.getElementById('delRout');
google.maps.event.addListener(autocomplete_to, 'place_changed', function() {
                var place = autocomplete_to.getPlace();
                if (!place.geometry) return;

                route_to = place.geometry.location;
                if (place.geometry.viewport) {
                    scope.map.fitBounds(place.geometry.viewport);
                    
                } else {
                    scope.map.setCenter(place.geometry.location);
                    scope.map.setZoom(17);  // Why 17? Because it looks good.
                    delRoutBtn.style.display = 'block';                  
                }
               route();
                delRoutBtn.onclick = function () {
                        alert('ky=ky');
                };
            });


Нужно чтобы вместо "ку=ку" при нажатии, пропадал маршрут(отменялось действие функции route ()). Как это сделать без ajax? Спасибо большое.

mr__brainwash 20.10.2014 01:44

Я неправильно оформил вопрос или почему никто не отвечает?

jsnb 20.10.2014 06:57

Может потому что, во-первых, были выходные, а во-вторых мало кто наизусть знает google maps API чтобы сходу дать ответ на такой вопрос. Ну а в-третьих, почему не воспользоваться гуглом:
http://lmgtfy.com/?q=google+maps+api+remove+route

mr__brainwash 20.10.2014 13:50

Спасибо, я не правильно формулировал вопрос когда искал. Помогло вот это:
directionsDisplay.setDirections({routes: []});


Часовой пояс GMT +3, время: 15:13.