3

Donc, je suis en train d'apprendre javascript pour jouer avec l'API Google Maps. Je me demandais si quelqu'un avait une solution élégante à ce problème que je rencontre.L'itinéraire le plus court sans destination définie dans Google Maps V3?

Une demande d'itinéraire Google Maps doit contenir trois éléments (origine, destination et mode de voyage). Mon TravelMode sera toujours CONDUIRE. L'origine sera toujours là où se trouve l'utilisateur.

La destination cependant, doit varier. J'ai plusieurs waypoints et l'utilisateur va visiter, et voudrait fournir le trajet le plus court possible en fonction des waypoints sélectionnés et de l'endroit où se trouve l'utilisateur, terminant l'itinéraire à l'un des waypoints (par exemple: ABC ou ACB, mais toujours Axx. ..X).

Existe-t-il un moyen de le faire autre que de calculer tous les chemins possibles et de voir quelle est la distance la plus courte (ou le temps, ou quoi que j'évalue)? Il semble que ce serait prohibitif (O (n!)). Edit: Avec l'indicateur optimizeWaypoints suggéré, positionné à true, cela devient un problème O (n) au lieu de O (n!), Mais j'ai maintenant des problèmes pour émettre trop de requêtes en trop peu de temps.

Répondre

6

Il y a un paramètre dans des directions Google pour fournir itinéraire optimisé (optimizeWaypoints - http://code.google.com/apis/maps/documentation/javascript/services.html#Directions) vous simplement mettre à true dans vos directions objet

+0

Je l'ai fait, mais je suis toujours obligé de définir une destination. Je ne peux pas simplement mettre ceci à vrai et nourrir la demande tous mes waypoints. Ce que je suis en train de faire maintenant est simple: créer n routes pour n waypoints, en alimentant la demande A comme origine, b-n comme destinations et tous les waypoints moins la destination pour chaque route. Cela me donne une route pour laquelle je peux calculer une distance, en faisant maintenant des tests lourds pour voir si cela fonctionne pour un nombre décent de waypoints. – Crag

+3

Ok, la solution que j'ai fini par utiliser était basée sur cette réponse, donc il obtient la coche. Ce que j'ai maintenant, ce sont mes waypoints ainsi que des endroits vraiment éloignés. J'envoie tous mes waypoints dans ma demande, laissez Google trouver l'itinéraire optimal pour ces waypoints de ma position de départ à la destination lointaine et ensuite prendre les waypoints nouvellement commandés. Ensuite, je définis le dernier waypoint comme la nouvelle destination, et déclenche une autre requête avec l'ensemble des waypoints contenant maintenant un waypoint de moins. Cela me donne la route que je suis après. – Crag

+0

J'ai le même problème, j'ai besoin de calculer la meilleure destination avec les autres points. J'ai aimé votre solution. Merci. –

1

Si vous voulez que la route la plus courte, vous pouvez appeler d'abord à l'API Google distanceMatrix et obtenir la liste de tri des arrêts.

Appelez ensuite vers les directions API avec la liste de tri.

Questions connexes