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

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

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

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

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

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

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

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

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

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

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

أخطاء الردود

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

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

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

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

لا يمكن ضمان عرض العناصر التي تعرضها مجموعة البث بأي ترتيب. لذلك، يحتوي كل عنصر استجابة على 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 في هذه الصفحة كلاً من حوسبة المسارات ومصفوفة مسارات الحوسبة.