Wegpunkte der Route optimieren

Die Wegpunktoptimierung ist eine Funktion der Option „Routes Preferred“, ComputeRoutes Sie optimiert die Reihenfolge der Wegpunkte auf einer Route damit sie die effizienteste Route nutzen. Das ComputeRoutes Die Implementierung der Wegpunktoptimierung unterstützt folgende Mobilitätsformen:

  • Mit dem Auto
  • Motorisiertes Zweirad
  • Radfahren
  • Spazierengehen

Vorteile der Wegpunktoptimierung

Bei der Entwicklung einer App, die Nutzende durch eine Reihe von Wegpunkten auf dem Weg ist es wichtig, dass der Reisende die Wegpunkte im optimale Reihenfolge zu finden. Dadurch wird sichergestellt, dass der Reisende an jedem Wegpunkt im kürzester Zeit in Anspruch genommen werden.

Funktionsweise

Standardmäßig berechnet ComputeRoutes eine Route anhand ihrer Wegpunkte in der Reihenfolge in dem sie ursprünglich angegeben wurden. Sie können ComputeRoutes zur Optimierung erhalten indem Sie die Wegpunkte in eine effizientere Reihenfolge bringen. Sie erhalten eine Route mit optimierten Wegpunkten, wenn Sie die optimizeWaypointOrder im Anfragetext für true.

Hinweis: Die Berechnung der Wegpunktoptimierung basiert hauptsächlich auf der Reisezeit, Dabei werden aber noch weitere Faktoren berücksichtigt, zum Beispiel die Entfernung. und die Anzahl der Runden.

Neu angeordnete Wegpunkte abrufen

Um eine Route mit neu angeordneten Wegpunkten zu erhalten, legen Sie das boolesche Feld optimizeWaypointOrder an true im Text Ihrer Anfrage an ComputeRoutes Fügen Sie außerdem das Feld optimizedIntermediateWaypointIndex hinzu. in die Feldmaske ein. Der Antworttext enthält die optimierte Wegpunktreihenfolge in die optimizedIntermediateWaypointIndex-Felder.

Hinweis: Das Feld optimizedIntermediateWaypointIndex gibt nullbasierte Werte.

Beispielanfrage

Im folgenden Beispiel wird eine Route in der Nähe des Universitätscampus. Die Wegpunkte der Route wurden der Reihe nach in den Die Anfrage enthält einen Start- und einen Zielort sowie zwei Zwischenziele Wegpunkte.

POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.418956,
        "longitude": -122.160815
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.4176423,
          "longitude":-122.1102246
        }
      }
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.407689,
          "longitude": -122.1360597
        }
      }
    }
  ],
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.4032137,
        "longitude": -122.0349119
      }
    }
  },
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": true,
  "routingPreference": "TRAFFIC_AWARE"}

Beispielantwort

Die neu angeordneten Wegpunktindexe finden Sie im optimizedIntermediateWaypointIndex-Felder innerhalb des „routes“-Objekts in der Antworttext. Die codierte Polylinie ist dasselbe wie in Directions API und ComputeRoutes

routes {
  distance_meters: 17647
  duration {
    seconds: 1866
  }
  polyline {
    encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
  }
  optimizedIntermediateWaypointIndex: 1
  optimizedIntermediateWaypointIndex: 0
}

Beachten Sie in diesem Beispiel, dass durch die Optimierung der Wegpunkte die ursprünglichen Reihenfolge.

Die Verarbeitung einer Anfrage mit optimierten Wegpunkten dauert länger als bei einer einfachen Weiterleitung. Daher empfehlen wir, ein höheres Zeitlimit für den Methodenaufruf festzulegen. indem Sie einen Wert für den X-Server-Timeout-Anfrageheader auf mindestens zehn festlegen Sekunden. Wenn weiterhin Zeitüberschreitungsfehler auftreten, können Sie eine weitere Sekunde hinzufügen. und versuchen Sie es dann noch einmal.

Nutzungsbeschränkungen

Wenn Sie die Wegpunktoptimierung verwenden möchten, müssen Sie die folgenden Nutzungsbeschränkungen beachten und Bedingungen:

  • Sie können die Nutzungsbegrenzung für Wegpunkte auf Ihrem Route:

    • Bis zu 98 Wegpunkte dürfen nur aus Breiten- und Längengraden bestehen.
    • Bis zu 25 Wegpunkte, wenn Sie Wegpunkte mithilfe von Orts-IDs angeben.
  • Alle Wegpunkte müssen vom Typ stopover sein. Keiner deiner Wegpunkte kann vom Typ via sein.

  • Sie müssen dem Feld routes.optimizedIntermediateWaypointIndex hinzufügen Maske.

  • Falls Ihre Anfrage 25 oder mehr Wegpunkte umfasst, muss auch die folgenden Bedingungen erfüllen:

    • Die kumulierte Luftlinienentfernung zwischen allen Wegpunkten muss weniger als 1.000 km Diese Entfernung umfasst sowohl den Startort als auch den Ziel.

    • Die Mobilitätsform muss DRIVE sein.