Punkt für eine Route festlegen

Entwickler im Europäischen Wirtschaftsraum (EWR)

Standardmäßig behandelt die API Zwischenwegpunkte als Haltestellen auf einer Route. Sie können einen Zwischenwegpunkt jedoch als via-Wegpunkt konfigurieren, den das Fahrzeug durchfährt, ohne anzuhalten.

Verwenden Sie Durchgangswegpunkte, um eine bestimmte Route zu gestalten oder anzupassen. Anstatt die Route in separate Abhol- oder Absetzpunkte aufzuteilen, zwingt ein Durchgangswegpunkt die Routing-Engine, auf dem Weg zum Ziel einen bestimmten Ort zu durchfahren, z. B. um einem bevorzugten Straßenabschnitt zu folgen oder eine bekannte Gefahrenstelle zu vermeiden.

Eine Route mit einem Startpunkt, einem oder mehreren Durchgangs-Zwischenwegpunkten und einem Ziel enthält nur einen Routenabschnitt , der den Startpunkt direkt mit dem Ziel verbindet.

Wenn Sie einen Zwischenwegpunkt als Durchgangswegpunkt konfigurieren möchten, legen Sie die via Eigenschaft des Wegpunkts auf true entweder in der REST Waypoint-Ressource oder in der gRPC Waypoint-Nachricht fest.

Die Routes API akzeptiert Adressen, Orts-IDs sowie Breiten- und Längengrade . Breiten- und Längengrade oder latLngKoordinaten ermöglichen jedoch die präzisesten Routenanpassungen für Durchgangswegpunkte.

Die Eigenschaft via ist am effektivsten, wenn Sie Routen erstellen, indem Sie Wegpunkte auf einer Karte ziehen. So können Sie in Echtzeit sehen, wie die endgültige Route aussieht, und Wegpunkte an zugänglichen Orten platzieren.

Beispiel: Durchgangswegpunkt festlegen

Im folgenden Beispiel wird gezeigt, wie Sie "via": true für einen Zwischen wegpunkt in einer vollständigen computeRoutes POST-Anfrage festlegen:

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      },
      "via": true
    }
  ],
  "travelMode": "DRIVE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Adressen oder Orts-IDs für Durchgangswegpunkte verwenden

Wir empfehlen zwar Breiten- und Längengrade für ein präzises Durchgangs-Routing, Sie können Zwischenwegpunkte aber auch mit einem Adressstring oder einer Orts-ID angeben.

Wenn Sie eine Adresse oder Orts-ID für einen Durchgangswegpunkt verwenden, interpoliert die API den Standort und richtet ihn an der nächstgelegenen befahrbaren Straße aus. Dieser Vorgang kann im Vergleich zu genauen Koordinaten zu Routenabweichungen oder Ungenauigkeiten führen.

Wenn Sie einen Wegpunkt mit einem Adressstring oder Plus Code angeben, geocodiert die API den Standort und gibt die entsprechende Orts-ID in der geocodingResults.intermediates im Array in der Antwort zurück.

Verwenden Sie für jedes Element im Array intermediates die Eigenschaft intermediateWaypointRequestIndex, um zu ermitteln, welcher Zwischenwegpunkt in der Anfrage der Orts-ID in der Antwort entspricht.

Beispiel: Orts-IDs für Durchgangswegpunkte anfordern

Das folgende Beispiel zeigt eine Anfrage mit drei Durchgangs-Zwischenwegpunkten, für die jeweils "via": true angegeben ist:

curl -X POST -d '{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "24 Willie Mays Plaza, San Francisco, CA 94107"
  },
  "intermediates": [
    {
      "address": "450 Serra Mall, Stanford, CA 94305, USA",
      "via": true
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      },
      "via": true
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063",
      "via": true
    }
  ],
  "travelMode": "DRIVE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Die Antwort enthält das Array geocodingResults mit den Orts-IDs für den Startpunkt, das Ziel und die beiden Zwischenwegpunkte, die Sie in der Anfrage an den Index 0 und 2 per Adresse angegeben haben. Der Zwischenwegpunkt an Index 1 wird von der API in geocodingResults ausgelassen, da Sie ihn mit Breiten- und Längengraden angegeben haben:

{
  "routes": [
    {
      "distanceMeters": 54200,
      "duration": "2400s",
      "legs": [
        {
          "distanceMeters": 54200,
          "duration": "2400s",
          "startLocation": {
            "latLng": {
              "latitude": 37.4220,
              "longitude": -122.0841
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.7786,
              "longitude": -122.3893
            }
          }
        }
      ]
    }
  ],
  "geocodingResults": {
    "origin": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
    },
    "destination": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY"
    },
    "intermediates": [
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 0,
        "type": [
          "street_address"
        ],
        "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y"
      },
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 2,
        "type": [
          "premise"
        ],
        "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0"
      }
    ]
  }
}