Ustaw pośrednie punkty na drodze

Pośrednie punkty pośrednie to lokalizacje pomiędzy miejscem wylotu a celem podróży , którymi chcesz pokonywać trasę. Pośredni punkt pośredni może być przystankiem lub możesz określić je jako lokalizację, przez którą chcesz przejść. Przykład punktu na trasie wskazówki dojazdu znajdziesz w artykule Ustawianie przystanku na trasie. Na przykład z punktów pośrednich, Wyznacz punkt trasy przelotowej.

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

Dla każdego pośredniego punktu pośredniego w żądaniu parametr Obiekt trasy (REST) lub Obiekt trasy (gRPC) w interfejsie dodaje wpis do tablicy legs, aby udostępnić szczegółowe informacje na tym etapie podróży.

Każdy odcinek trasy jest reprezentowany przez RouteLeg (REST) lub Obiekt RouteLeg (gRPC). Aby określić, które pola RouteLeg mają zostać zwrócone, użyj funkcji maską pola odpowiedzi.

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

W przykładzie poniżej użyto właściwości tablicy intermediates do dodania pojedynczej wartości pośredni punkt pośredni do treści żądania POST trasy.

W tym przykładzie w nagłówku X-Goog-FieldMask używana jest maska pola odpowiedzi , który określa zwrócenie w odpowiedzi tych pól:

  • 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 etap nogi to reprezentowana przez RouteLegStep (REST) lub Obiekt 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": [
                {
                  ...