הגדרת ציוני דרך ברמת הביניים

נקודות ציון ביניים הן מיקומים בין המוצא ליעד שרוצים שהמסלול יעבור דרכם. נקודת ציון ביניים יכולה להיות עצירה, או שאפשר לציין אותה כמיקום שצריך לעבור דרכו. דוגמה לנקודת ציון של עצירה מפורטת במאמר הגדרת עצירה במסלול. לדוגמה של נקודת ציון לצורך מעבר, ראו הגדרת נקודה לצורך מעבר בנתיב.

אפשר להשתמש במאפיין המערך intermediates של השיטה computeRoutes (ב-REST) או של השיטה ComputeRoutes (ב-gRPC) כדי להגדיר עד 25 נקודות דרך ביניים.

לכל נקודת ציון ביניים בבקשה, אובייקט המסלול (ב-REST) או אובייקט המסלול (ב-gRPC) בתגובה מוסיפים רשומה למערך legs כדי לספק את הפרטים של קטע המסלול הזה.

כל מקטע במסלול מיוצג על ידי אובייקט RouteLeg (ב-REST) או RouteLeg (ב-gRPC). כדי לקבוע אילו שדות RouteLeg יוחזרו, משתמשים במסכת שדה התגובה.

דוגמה – הגדרת ציון דרך ביניים

בדוגמה הבאה נעשה שימוש במאפיין המערך intermediates כדי להוסיף נקודת ציון ביניים אחת לגוף הבקשה של POST של מסלול.

בדוגמה הזו נעשה שימוש במסכת שדה תגובה בכותרת X-Goog-FieldMask שמציינת שהשדות הבאים יוחזרו בתגובה:

  • routes.duration
  • routes.distanceMeters
  • routes.legs שתואם לכל אובייקט 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'

התשובה מהקריאה הזו מכילה את המערך legs. כל שלב במסלול מיוצג באובייקט RouteLegStep (ב-REST) או 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": [
                {
                  ...