Ustaw pośrednie punkty na drodze

Pośrednie punkty pośrednie to lokalizacje pomiędzy miejscem wylotu a celem podróży, przez które chcesz przechodzić trasa. Pośredni punkt pośredni może być przystankiem lub wskazać je jako lokalizację, którą chcesz przejechać. Przykładowy punkt pośredni na trasie dojazdu znajdziesz w sekcji Ustawianie przystanku na trasie. Przykładowy punkt pośredni na drodze do przejścia: Ustaw punkt trasy przelotowej.

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

Dla każdego pośredniego punktu pośredniego w żądaniu obiekt trasy (REST) lub obiekt trasy (gRPC) w odpowiedzi dodaje wpis do tablicy legs ze szczegółami danego etapu ścieżki.

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

Przykład – ustawianie pośredniego punktu pośredniego

W poniższym przykładzie użyto właściwości tablicy intermediates do dodania pojedynczego pośredniego punktu pośredniego do treści żądania POST na trasie.

W tym przykładzie użyto w nagłówku X-Goog-FieldMask maski pola odpowiedzi, która określa, że odpowiedź ma zwrócić te pola:

  • routes.duration
  • routes.distanceMeters
  • routes.legs odpowiadająca 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ź z tego wywołania zawiera tablicę legs. Każdy krok etapu 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": [
                {
                  ...