Ustaw pośrednie punkty na drodze

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Punkty pośrednie to lokalizacje między miejscem początkowym a docelowym, przez które ma przebiegać trasa. Punkt pośredni może być przystankiem lub możesz go określić jako lokalizację, przez którą chcesz przejechać. Przykład punktu trasy dla przystanku znajdziesz w artykule Ustawianie przystanku na trasie. Przykład punktu pośredniego, przez który ma przechodzić trasa, znajdziesz w sekcji Ustawianie punktu, przez który ma przechodzić trasa.

Użyj właściwości tablicy intermediates metody computeRoutes (REST) lub metody ComputeRoutes (gRPC), aby zdefiniować maksymalnie 25 pośrednich punktów na trasie.

W przypadku każdego pośredniego punktu trasy w żądaniu obiekt Route (REST) lub obiekt Route (gRPC) w odpowiedzi dodaje wpis do tablicy legs, aby podać szczegóły tego etapu podróży.

Każdy etap trasy jest reprezentowany przez obiekt RouteLeg (REST) lub RouteLeg (gRPC). Określ, które pola RouteLeg mają zostać zwrócone, używając maski pola odpowiedzi.

Przykład – ustawianie pośredniego punktu trasy

W tym przykładzie użyto właściwości tablicy intermediates, aby dodać do treści żądania POST dotyczącego trasy pojedynczy pośredni punkt trasy.

W tym przykładzie używamy maski pola odpowiedzi w nagłówku X-Goog-FieldMask, która określa, że w odpowiedzi mają być zwracane te pola:

  • routes.duration
  • routes.distanceMeters
  • routes.legs odpowiadający całemu obiektowi RouteLeg.
curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    },
    "sideOfRoad": true
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "departureTime": "2022-10-15T15:01:23.045123456Z",
  "computeAlternativeRoutes": false,
  "routeModifiers": {
    "avoidTolls": false,
    "avoidHighways": false,
    "avoidFerries": false
  },
  "languageCode": "en-US",
  "units": "IMPERIAL"
}'
-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'

Odpowiedź na to wywołanie zawiera tablicę legs. Każdy krok trasy jest reprezentowany przez obiekt RouteLegStep (REST) lub RouteLegStep (gRPC).

{
  "routes": [
    {
      "legs": [
        # First leg
        {
            "distanceMeters": 207,
            "duration": "89s",
            "staticDuration": "89s",
            "polyline": {
                "encodedPolyline": "ipkcFjgchVd@@@cF]@@oCK?"
            },
            "startLocation": {
                "latLng": {
                    "latitude": 37.4197318,
                    "longitude": -122.0826233
                }
            },
            "endLocation": {
                "latLng": {
                    "latitude": 37.419734,
                    "longitude": -122.08077919999998
                }
            },
            "steps": [            {
              "distanceMeters": 21,
              "staticDuration": "6s",
              "polyline": {
                "encodedPolyline": "ipkcFjgchVd@@"
              },
              "startLocation": {
                "latLng": {
                  "latitude": 37.4197318,
                  "longitude": -122.0826233
                }
              },
              "endLocation": {
                "latLng": {
                  "latitude": 37.41954,
                  "longitude": -122.08262750000002
                }
              }
            },
            ...
        },
        # Second leg
        {
            "distanceMeters": 598,
            "duration": "159s",
            "staticDuration": "159s",
            "polyline": {
                "encodedPolyline": "ipkcFz{bhVh@??{@xPBP?J}E{E?"
            },
            "startLocation": {
                "latLng": {
                    "latitude": 37.419734,
                    "longitude": -122.08077919999998
                }
            },
            "endLocation": {
                "latLng": {
                    "latitude": 37.417616599999995,
                    "longitude": -122.07938820000001
                }
            },
            "steps": [
                {
                  ...