Ustawianie punktu na drodze, przez którą przechodzi

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Domyślnie pośrednie punkty trasy są używane do zatrzymywania się w celu odbioru i wysadzenia pasażerów, ale możesz też określić, że pośredni punkt trasy ma służyć tylko do przejazdu.

Trasa, która zawiera punkt początkowy, punkt pośredni i punkt docelowy, ma tylko 1 odcinek łączący punkt początkowy z docelowym, który przechodzi przez punkt pośredni (nazywany via).

Aby skonfigurować pośredni punkt trasy jako punkt przelotowy, ustaw właściwość via punktu trasy na true za pomocą Waypoint (REST) lub Waypoint (gRPC).

Właściwość via jest najbardziej przydatna podczas tworzenia tras w odpowiedzi na przeciąganie przez użytkownika punktów pośrednich na mapie. Dzięki temu użytkownik może w czasie rzeczywistym zobaczyć, jak będzie wyglądać ostateczna trasa, i upewnić się, że punkty pośrednie znajdują się w miejscach dostępnych dla interfejsu Compute Routes.

Ten przykład pokazuje, jak oznaczyć pośredni punkt trasy jako punkt przelotowy.

{
  "location": {
    "latLng": {
      "latitude":37.419734,
      "longitude":-122.0827784
    }
  },
  "via": true
}

Dostęp do identyfikatorów miejsc dla pośrednich punktów trasy

Jeśli określisz lokalizację punktu początkowego, docelowego lub pośredniego jako ciąg adresu lub kod Plus Code, interfejs API spróbuje znaleźć najbardziej odpowiednią lokalizację, która ma odpowiedni identyfikator miejsca. Tablica geocodingResults.intermediates w wynikach zawiera identyfikator miejsca odpowiadający lokalizacji punktów pośrednich oraz dodatkowe dane o lokalizacji.

W przypadku każdego elementu tablicy intermediates użyj właściwości intermediateWaypointRequestIndex, aby określić, który pośredni punkt pośredni w żądaniu odpowiada identyfikatorowi miejsca w odpowiedzi.

Na przykład:

  • W żądaniu określasz 3 pośrednie punkty na trasie. Dwa z tych punktów pośrednich są określone przez ciągi znaków adresu, a jeden przez współrzędne szerokości i długości geograficznej.

  • W masce pola odpowiedzi umieść geocodingResults, aby określić, że w wynikach ma być zwracana tablica geocodingResults.

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"
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063"
    }
  ],
  "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'

Odpowiedź zawiera tablicę geocodingResults z identyfikatorami miejsc dla punktu początkowego, miejsca docelowego i 2 z 3 punktów pośrednich. Są to punkty pośrednie o indeksach 0 i 2 w żądaniu. Punkt pośredni o indeksie 1 w żądaniu został określony za pomocą współrzędnych geograficznych, więc jest pomijany w tablicy geocodingResults w odpowiedzi.

{
  "routes": [{...}],
  "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"
      }
    ]
  }
}