Suite

Brochure-routing-machine ajouter des waypoints, résumé du routage

Brochure-routing-machine ajouter des waypoints, résumé du routage


Je joue avec la brochure-routing-machine (https://github.com/perliedman/leaflet-routing-machine) et j'ai 2 questions sur son utilisation :

1)

j'ai maintenant le code suivant

routeControl = L.Routing.control({ waypoints : [ L.latLng(48.133205,11.565225), L.latLng(48.131830,11.588227) ], useZoomParameter : false, autoRoute : false, }).addTo(map);

qui fonctionne bien, mais que faire quand je veux commencer sans aucun waypoint ? Lorsque je laisse de côté les points de cheminement du constructeur et que j'essaie de les ajouter, puis avec

routeControl.spliceWaypoints (0, 0, e.latlng);

le routage ne fonctionne plus (je sais, je dois démarrer le routage manuellement, car j'ai défini autoRoute sur false). Mais si je commence par ces points initiaux et que j'ajoute d'autres waypoints, le routage fonctionne.

2) J'essaie d'obtenir totalDistance, qui fait partie de l'Interface IRouteSummary.

Selon l'API, j'ai besoin d'accéder à l'interface IRoute, mais je n'ai pas trouvé comment obtenir IRoute à partir de L.Routing.Control

J'ai trouvé ce post (https://stackoverflow.com/questions/26570980/getting-distance-between-2-markers) qui utilise un tableau de routes[], mais je ne sais pas non plus comment obtenir ce tableau ?! Il fait également référence à ce didacticiel http://www.liedman.net/leaflet-routing-machine/tutorials/interaction/ mais ici, je ne trouve aucune information sur la façon d'accéder à ce tableau.


Je peux répondre à la 2ème partie de votre question, la première m'a un peu ligoté maintenant aussi je vais éditer si personne ne répond quand je comprends. Donc pour 2) utilisez simplement quelque chose dans la ligne de

routeControl._routes[0].summary.totalDistance

Voyez si cela fonctionne, aussi _routes[0] représente votre choix par exemple si vous avez une autre option de routage pour laquelle vous voulez connaître la distance _routes[1] est votre réponse… intégrez cela dans une fonction et le tour est joué.

Edit : Concernant votre premier problème de démarrage sans itinéraire, appelez simplement ce qui suit :

L.routing.control.({ waypoints : [null ] })

Et en supposant que vous vouliez ajouter de nouveaux waypoints

L.routing.control.setWaypoints([ L.latLng(lat1, lon1), L.latLng(lat2, lon2) ]);

Cette syntaxe est en effet très étrange, mais ouvrez un inspecteur de code et vous vous y habituerez.


La solution de compensation ci-dessus ne fonctionne pas pour moi. Cependant, j'ai trouvé un moyen plus propre d'effacer la route avec la commande suivante :

routeControl.getPlan().setWaypoints({latLng : L.latLng([0, 0])});

routeControlest l'instance deL.contrôle.de.routage.


A propos de la 2ème partie_routesn'est pas accessible directement, mais vous pouvez utiliser le itinéraires trouvés événement juste après.addTo(carte)une fonction:

routeControl.on('routesfound', function (e) { distance = e.routes[0].summary.totalDistance; time = e.routes[0].summary.totalTime; });

Voir la vidéo: Battery Save function - Garmin Oregon 700 and 750