الحصول على مصفوفة مسار

استخدِم Routes API لحساب مسافة المسار ومدته لأصول ووجهات متعددة من خلال استدعاء طريقة computeRouteMatrix (REST) أو طريقة ComputeRouteMatrix (gRPC) المتعلقة بالبث.

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

الحصول على مصفوفة مسار النقل العام

ويمكنك أيضًا حساب مصفوفة مسار أثناء النقل العام. على سبيل المثال، راجِع الحصول على مصفوفة مسارات للنقل العام.

الحدود القصوى للطلبات

تفرض طرق مصفوفة مسار الحوسبة حدود الطلب التالية لنقاط الطرق باستخدام العنوان أو أرقام تعريف الأماكن، وللعناصر. العناصر هي المسارات بين كل نقطة انطلاق ووجهة في مصفوفة مسار، ولذلك يكون عدد العناصر هو عدد الأصول عدد الوجهات. على سبيل المثال، إذا كان لديك 10 أصول و10 وجهات، سيكون لديك 100 عنصر:

  • لا يمكن أن يتجاوز عدد العناصر 625 للمسارات التي لا تمثل مسارات TRANSIT.

  • إذا حددت مسار TRANSIT، يجب ألا يتجاوز عدد العناصر 100 عنصر.

  • إذا حدّدت TRAFFIC_AWARE_OPTIMAL، لا يمكن أن يتجاوز عدد العناصر العدد 100. لمزيد من المعلومات عن TRAFFIC_AWARE_OPTIMAL، راجِع تحديد كيفية تضمين بيانات حركة المرور وما إذا كان سيتم تضمينها.

  • إذا حددت المصادر أو الوجهات باستخدام العنوان أو معرّف المكان، يمكنك تحديد ما يصل إلى 50 في المجمل بهذه الطريقة.

الأخطاء في الردود

إنّ إحدى ميزات طرق "مصفوفة مسار الحوسبة" هي أنه يمكن عرض الأخطاء إما للاستجابة بأكملها أو لعناصر استجابة فردية. على سبيل المثال، تحتوي الاستجابة بالكامل على خطأ إذا تمت كتابة الطلب بشكل غير صحيح (مثلاً، لا يحتوي على أصول صفرية).

ومع ذلك، إذا انطبق الخطأ على مجموعة فرعية من العناصر في الاستجابة (على سبيل المثال، لا يمكن حساب مسار لمجموعة واحدة من المصدر والوجهة)، فحينئذٍ تعرض العناصر المتأثرة بالخطأ فقط رمز الخطأ.

نتائج ساحة مشاركات gRPC

تستخدم طريقة ComputeRouteMatrix طريقة gRPC في إنشاء قائمة بالمصادر والوجهات وعرض معلومات مسار مفصّلة لكل مجموعة من نقطة الانطلاق والوجهة. بما أنّ النتائج يتم عرضها على شكل بث، لن تضطر إلى الانتظار حتى يتم حساب كل مجموعات المسارات الممكنة قبل أن تتمكّن من البدء في معالجة النتائج.

ولا يمكن ضمان عرض العناصر التي يعرضها البث بأي ترتيب. ولذلك، يحتوي كل عنصر استجابة على origin_index وdestination_index. بالنسبة إلى الأصول والوجهات التي حدّدها الطلب، يعادل أصل المسار origins[origin_index] لعنصر معيّن وتعادل وجهة المسار destinations[destination_index]. تكون هذه الصفائف مفهرسة بصفر. من المهم تخزين طلبات قائمة الوجهات والوجهات.

أمثلة على احتساب مصفوفة المسارات

استخدِم الطريقة computeRouteMatrix في طلب HTTP لاحتساب مصفوفة مسار.

مثال على HTTP

يعرض المثال التالي طلب HTTP computeRouteMatrix. في هذا المثال، أنت:

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

    في الصفيفة، يكون العنصر الأول في فهرس 0، والثاني هو الفهرس 1، وهكذا.

  • يمكنك تضمين قناع حقل الاستجابة لتحديد حقول الاستجابة (REST) أو ComputeRoutesResponse (gRPC) المطلوب عرضها. في هذا المثال، يمكنك ضبط الطلب لعرض originIndex وdestinationIndex وduration وdistanceMeters وstatus وcondition لكل مسار. لمزيد من المعلومات، يُرجى الاطّلاع على اختيار الحقول المطلوب عرضها.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

يحتوي الرد على المسارات الأربعة المحتملة لمزيج جميع نقاط طرق المصدر والوجهة.

حدِّد كل مسار في الردّ باستخدام حقلَي الاستجابة originIndex وdestinationIndex. على سبيل المثال، تتجاوب القيمة originIndex من 1 في الردّ مع مسار تم احتسابه من النقطة الوسيطة في الفهرس 1 لمصفوفة origins في الطلب.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

أمثلة على gRPC

على سبيل المثال، طلبات gRPC، راجِع الأمثلة في مثال على طلب gRPC. يستدعي مثال Java في تلك الصفحة كلاً من Compute Routes و Compute Route Matrix.