تعيين نقاط الطريق المتوسطة

نقاط الطريق المتوسطة هي مواقع بين نقطة الأصل والوجهة التي تريد أن يمرّ بها المسار. يمكن أن تكون النقطة الوسيطة نقطة توقف أو يمكنك تحديدها كموقع للمرور. للحصول على مثال لنقطة طريق لمحطة، راجع تعيين محطة على طول المسار. وللحصول على مثال على نقطة طريق للمرور، اضبط نقطة لمسار عبور.

استخدِم سمة صفيف 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": [
                {
                  ...