يمكنك استخدام Routes API لحساب مسافة الطريق ومدته لمصادر ووجهات متعددة من خلال طلب طريقة computeRouteMatrix (REST) أو طريقة ComputeRouteMatrix (gRPC).
بمبدأ قائمة الأصول والوجهات، تحسب الطريقة المسافة والمدة في مسار يبدأ من كل نقطة انطلاق وينتهي عند كل وجهة.
الحصول على مصفوفة مسارات النقل العام
يمكنك أيضًا حساب مصفوفة مسار عند النقل العام. على سبيل المثال، راجع الحصول على مصفوفة مسارات للنقل العام.
الحدود القصوى المسموح بها للطلبات
تفرض طرق مصفوفة مسار Compute حدود الطلبات التالية لنقاط الطريق باستخدام العنوان أو معرّفات الأماكن، وللعناصر. العناصر هي المسارات بين كل نقطة انطلاق ووجهة في مصفوفة مسار، وبالتالي فإن عدد العناصر هو عدد الأصول مرات عدد الوجهات. على سبيل المثال، إذا كان لديك 10 مصادر و10 وجهات، يكون لديك 100 عنصر:
يجب ألا يتجاوز عدد العناصر 625 للمسارات التي لا تشكّل مسارات
TRANSIT
.في حال تحديد مسار
TRANSIT
، يجب ألا يتجاوز عدد العناصر 100.إذا حددت
TRAFFIC_AWARE_OPTIMAL
، لا يمكن أن يتجاوز عدد العناصر 100. لمزيد من المعلومات حولTRAFFIC_AWARE_OPTIMAL
، يمكنك الاطّلاع على ضبط الجودة مقابل وقت الاستجابة.في حال تحديد أي مصادر أو وجهات باستخدام عنوان أو رقم تعريف مكان، لا يمكنك تضمين إجمالي 50 وجهة ومصدرًا.
أخطاء الاستجابة
تتمثل إحدى ميزات طرق مصفوفة مسار Compute في أنه يمكن عرض الأخطاء إما للاستجابة بأكملها أو لعناصر الاستجابة الفردية. على سبيل المثال، تحتوي الاستجابة بأكملها على خطأ إذا كان الطلب مكتوبًا بصيغة غير صحيحة (على سبيل المثال، لا يحتوي على أي أصول).
ومع ذلك، إذا حدث خطأ على مجموعة فرعية من العناصر في الاستجابة (على سبيل المثال، لا يمكن احتساب مسار لتركيبة واحدة من المصدر والوجهة)، فستعرض العناصر المتأثرة بالخطأ فقط رمز خطأ.
نتائج ساحة مشاركات 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.