Ustawianie punktu na drodze, przez którą przechodzi

Domyślnie pośrednie punkty pośrednie są używane do zatrzymywania przy odbiorze i porzucenia, ale możesz też określić, że pośredni punkt pośredni ma być które można przejść.

Trasa zawierająca punkt pośredni (przelotowy pośredni) i punkt docelowy zawiera tylko jeden etap trasy, łączy miejsce wylotu z celem podróży, przechodząc przez środek pośredni punkt pośredni via.

Skonfiguruj pośredni punkt pośredni jako punkt pośredni ustawiając właściwość via punktu pośredniego na true za pomocą Waypoint (REST) lub Punkt pośredni (gRPC).

Właściwość via działa najlepiej przy tworzeniu tras w odpowiedzi na przeciąganie punktów na mapie przez użytkownika. Dzięki temu użytkownik będzie mógł zobaczyć, końcowa trasa może wyglądać w czasie rzeczywistym i ułatwia rozmieszczenie punktów pośrednich w lokalizacjach, które są dostępne dla tras Compute.

Poniższy przykład pokazuje, jak oznaczyć pośredni punkt pośredni jako bezprzewodowego punktu pośredniego.

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

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

Jeśli określisz lokalizację punktu początkowego, docelowego lub pośredniego punktu pośredniego w postaci ciągu adresu lub kodu plusa, interfejs API próbuje znaleźć najtrafniejsza lokalizacja, która ma odpowiedni identyfikator miejsca. geocodingResults.intermediates tablica w wynikach zawiera identyfikator miejsca odpowiadający lokalizacji punkty pośrednie wraz z dodatkowymi danymi na temat lokalizacji.

W przypadku każdego elementu tablicy intermediates użyj funkcji właściwość intermediateWaypointRequestIndex, która określa, która strona pośrednia punkt pośredni w żądaniu odpowiada identyfikatorowi miejsca w odpowiedzi.

Na przykład:

  • W żądaniu określasz trzy pośrednie punkty pośrednie. Dwóch z nich punkty pośrednie są określone za pomocą ciągów adresu, a jeden według szerokości i długości geograficznej .

  • Aby określić wartość, uwzględnij geocodingResults w masce pola odpowiedzi zwraca tablicę geocodingResults w wynikach.

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 identyfikatorem miejsca dla miejsca wylotu, cel podróży i dwa z trzech punktów pośrednich. Są to punkty pośrednie w indeksie 0 i 2 żądania. Ponieważ punkt pośredni w indeksie 1 żądanie zostało określone za pomocą współrzędnych geograficznych, został pominięty 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"
      }
    ]
  }
}