Ustawianie punktu na drodze, przez którą przechodzi

Pośrednie punkty pośrednie są domyślnie używane do zatrzymywania w przypadku odbioru i oddania, ale możesz też określić, że pośredni punkt pośredni ma służyć tylko do przejazdu.

Trasa, która zawiera punkt początkowy, pośredni punkt pośredni i docelowy punkt pośredni oraz tylko jeden etap trasy, który łączy miejsce początkowe i docelowe w drodze pośredniej (nazywanej via).

Skonfiguruj pośredni punkt pośredni jako punkt pośredni, ustawiając właściwość via punktu pośredniego na true przy użyciu Waypoint (REST) lub Waypoint (gRPC).

Właściwość via sprawdza się najlepiej przy tworzeniu tras w odpowiedzi na przeciąganie punktów na mapie przez użytkownika. Dzięki temu użytkownik może zobaczyć w czasie rzeczywistym, jak może wyglądać końcowa trasa, i ma pewność, że punkty na trasie są umieszczone w lokalizacjach dostępnych dla tras Compute.

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

{
  "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 jako ciągu adresu lub kodu plusa, interfejs API spróbuje znaleźć najtrafniejszą 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 trzy pośrednie punkty pośrednie. Dwa z tych punktów pośrednich są określone za pomocą ciągów adresu, a jeden za pomocą współrzędnych szerokości i długości geograficznej.

  • Aby określić, aby w wynikach była zwracana tablica geocodingResults, należy umieścić w masce pola odpowiedzi polecenie 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 identyfikatorem miejsca wylotu, miejsca docelowego i 2 z 3 punktów na trasie. Są to punkty pośrednie w indeksach 0 i 2 żądania. Punkt pośredni w pozycji 1 żądania został określony za pomocą współrzędnych szerokości i długości geograficznej, dlatego w odpowiedzi jest pomijany w tablicy geocodingResults.

{
  "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"
      }
    ]
  }
}