يمكنك استخدام 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 لصفيف 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. يستدعي مثال Java في تلك الصفحة كلاً من Compute Routes وCompute Route Matrix.