Más

Restablecer la ruta y los controles de la máquina de enrutamiento de folletos

Restablecer la ruta y los controles de la máquina de enrutamiento de folletos


Estoy tratando de construir una aplicación de enrutamiento basada en geolocalización en angular usando leaflet.js y una máquina de enrutamiento de folletos. Tengo esta función 'addRouting' donde paso la ubicación de un usuario (fromLat, fromLng) y también un destino (toLat, toLng).

Puedo obtener una ruta inicial para mostrar, pero tengo problemas para borrar el mapa y los controles para poder pasar en una nueva ruta y dirección. Con este código actual, la segunda ruta no se dibuja y obtengo un conjunto de controles completamente nuevo que se muestra como se ve a continuación.

Creo que necesito alguna forma de borrar y restablecer el mapa y la funcionalidad de enrutamiento. Soy nuevo en el uso de la máquina de enrutamiento de folletos y folletos y estoy luchando por comprender cómo se puede hacer esto.

// Agregar enrutamiento $ scope.addRouting = function (fromLat, fromLng, toLat, toLng) {// Obtener objeto de mapa leafletData.getMap (). Then (function (map) {// ajustar mapa map.fitBounds ([[fromLat, fromLng], [toLat, toLng]]); // borrar ruta y controles // agregar nueva ruta L.Routing.control ({waypoints: [L.latLng (fromLat, fromLng), L.latLng (toLat, toLng)] }). addTo (mapa);}); }

Si mantiene una referencia al L.Routing.Control alrededor, puede eliminarlo más adelante.

$ scope.routingControl = L.Routing.control ({waypoints: [L.latLng (fromLat, fromLng), L.latLng (toLat, toLng)]}). addTo (mapa);

y para eliminarlo:

$ scope.removeRouting = function () {leafletData.getMap (). then (function (map) {map.removeControl ($ scope.routingControl);}); };

O si solo tiene como objetivo cambiar los puntos de ruta de enrutamiento, no es necesario eliminarlo y crear un nuevo control de enrutamiento, puede simplemente cambiar los puntos de ruta:

$ scope.updateRoute = function (fromLat, fromLng, toLat, toLng) {$ scope.routingControl.getPlan (). setWaypoints ([L.latLng (fromLat, fromLng), L.latLng (toLat, toLng)]); };

Ver el vídeo: Ξεκίνησε ο ιδιώτης στην αποκομιδή - Διανομή φυλλαδίων - ITV Ειδήσεις - 15102020 video