Ustawianie punktu na drodze, przez którą przechodzi

Domyślnie pośrednie punkty na trasie są używane do zatrzymywania przy wsiadaniu i wysyłce, ale możesz też określić, że pośredni punkt ma służyć tylko do tego, aby się przez niego przejechać.

Trasa, która zawiera początkowy punkt pośredni, pośredni punkt pośredni i docelowy punkt pośredni, zawiera tylko jeden etap trasy, który łączy miejsce początkowe i cel podróży, przechodząc przez pośredni punkt pośredni (nazywany via).

Skonfiguruj pośredni punkt pośredni jako przejściowy punkt pośredni. W tym celu ustaw właściwość via punktu na true za pomocą punktu pośredniego (REST) lub punktu pośredniego (gRPC).

Właściwość via jest najskuteczniejsza przy tworzeniu tras w odpowiedzi na przeciąganie przez użytkownika punktów pośrednich na mapie. Dzięki temu użytkownik może zobaczyć, jak końcowa trasa może wyglądać w czasie rzeczywistym, oraz zadbać o to, aby punkty pośrednie były umieszczane w miejscach dostępnych dla tras Compute.

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

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

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

Jeśli określisz lokalizację miejsca wylotu, miejsca docelowego lub pośredniego punktu pośredniego jako ciągu adresu lub kodu Plus, 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 na trasie, a także dodatkowe dane o tej 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 pośrednie. Dwa z tych punktów pośrednich są określane przez ciągi adresu, a drugi przy użyciu współrzędnych szerokości i długości geograficznej.

  • W masce pola odpowiedzi umieszczasz geocodingResults, aby określić, czy 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 zawierającą identyfikator miejsca dla punktu początkowego, docelowego i dwóch z trzech punktów na trasie. Są to punkty pośrednie w indeksach 0 i 2 żądania. Punkt pośredni w indeksie 1 żądania został określony przy użyciu współrzędnych geograficznych, dlatego 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"
      }
    ]
  }
}