-1

Ich habe eine Route mit mehreren Wegpunkten A, B, C, D ... Ich möchte die kürzeste Strecke von dieser Route durch alle zu bekommen Wegpunkte in der gleichen Reihenfolge.Get kürzeste (nicht schnellste) Entfernung einer Route mit mehreren Wegpunkten von Google Maps Api

Bedeutet, ich möchte nicht die Reihenfolge der Wegpunkte optimieren. Ich möchte nur die kürzeste Route bekommen. Google Distance Api gibt mir die schnellste Route und nicht die kürzeste.

Googles Direction API gibt mir alle Routen und dann kann ich die kürzeste Route filtern, aber dafür muss ich zwei Schleifen erstellen. Eine, die die Wegpunkte (A - B, B - C, C - D) durchläuft und in jeder Beinschleife die möglichen Routen durchläuft, um die kürzeste zu finden.

Ich frage mich, ob es eine bessere und elegantere Möglichkeit gibt, dies zu tun.

Antwort

0

Zunächst hoffe ich, dass Sie nicht 3 verschiedene Routen mit Alternativen anfordern, weil Sie google API-Grenzen sehr schnell auf diese Weise erschöpfen werden. Nun ist der richtige Weg, um eine Route zu fragen, die durch jeden Wegpunkt passiert ist dies in AngularJS:

uiGmapGoogleMapApi.then(function(maps) { 
     directionsService = new maps.DirectionsService(); 
}); 

directionsService.route(request, function(response, status) {}); 

mit Anfrage Wesen:

{ 
    origin: 'A', 
    destination: 'D', 
    waypoints: [ 
{ 
    location: 'C', 
    stopover: false 
}], 
provideRouteAlternatives: false, 
travelMode: 'DRIVING' 
} 

wie in googleapi Handbuch google

Nun, wenn Sie tun Haben Sie eine Menge Anfragen für den Google API-Schlüssel, können Sie einfach verwenden, wie Sie gesagt haben, proveRouteAlternatives: true, und finden Sie die mit der kürzesten Entfernung.

Die andere Alternative ist, den Reisemodus auf Gehen zu ändern, da dies den kurzen Weg gibt, aber das funktioniert sehr schlecht für Straßen mit nur einer Richtung und solchen Sachen.

Verwandte Themen