حساب مصفوفة مسار

يمكنك احتساب المسافة والمدة لمسار من عدة نقاط بداية ونهاية باستخدام طريقة ComputeRouteMatrix في واجهة Routes Preferred API. يتيح ComputeRouteMatrix كلاً من مكالمات gRPC المتدفقة ومكالمات REST HTTP.

عند توفير قائمة بأزواج من المصادر والوجهات، تحسب الدالة ComputeRouteMatrix المسافة ومدة المسار الذي يبدأ من كل مصدر وينتهي عند كل وجهة. يتوافق كل عنصر من عناصر مصدر البيانات مع معلومات مسار واحد.

تقدّم طريقة ComputeRouteMatrix العديد من المزايا مقارنةً بخدمة "مصفوفة المسافات":

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

تفعيل طريقة ComputeRouteMatrix

قبل أن تتمكّن من استخدام طريقة ComputeRouteMatrix في الرمز، عليك تفعيلها. لمزيد من المعلومات حول تفعيل طرق Routes Preferred API، يُرجى الاطّلاع على بدء الاستخدام.

استخدام طريقة ComputeRouteMatrix

تتوفّر طريقة ComputeRouteMatrix من خلال نقطة النهاية Routes Preferred v1.

للحصول على معلومات أكثر تفصيلاً، يمكنك الاطّلاع على المستندات التالية:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

توضّح الخطوات العامة التالية كيفية استخدام gRPC لاستدعاء الطريقة ComputeRouteMatrix:

  1. راجِع بروتوكولات protobuffer الضرورية من مستودع googleapis:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    يُرجى العِلم أنّ بعض أنظمة الإنشاء، مثل Go، قد تنفّذ هذه العملية تلقائيًا نيابةً عنك.

  2. باستخدام لغتك المفضّلة ومجموعة أدوات الإنشاء، أنشئ رمز protobuffer ذي الصلة.

  3. أنشئ طلبك. يجب إرسال جزأين من البيانات الوصفية المطلوبة مع الطلب، وهما:

    • يجب ضبط X-Goog-Api-Key على مفتاح واجهة برمجة التطبيقات.
    • يجب ضبط X-Goog-Fieldmask على قائمة مفصولة بفواصل للحقول التي تحتاجها من الرد. على سبيل المثال، X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. يمكنك استخدام حرف البدل (*) للإشارة إلى جميع الحقول، ولكن لا يُنصح بذلك. استخدِم حرف البدل لاختبار استجابة واجهة برمجة التطبيقات وفهمها، ولكن أدرِج الحقول التي تريدها بشكل صريح في قناع الحقل في رمز الإنتاج.

      لمزيد من المعلومات حول كيفية إنشاء سلسلة قناع الحقل، يُرجى الاطّلاع على https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. يُرجى العِلم أنّ إيقاف الحقول التي لا تحتاج إليها يمكن أن يقلّل من وقت الاستجابة لأنّ هذه الحقول قد تتطلّب إجراء عمليات حسابية إضافية. ستظل مدة الاستجابة ثابتة إذا حدّدت الحقول التي تحتاج إليها وأضفت لاحقًا حقولاً جديدة تتطلّب المزيد من العمليات الحسابية.

  4. أرسِل طلبك إلى routespreferred.googleapis.com:443.يجب استخدام بروتوكول أمان طبقة النقل (TLS).

للاطّلاع على أمثلة حول استخدام طريقة ComputeRouteMatrix، راجِع أمثلة على حساب مصفوفة الطرق (إصدار تجريبي).

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

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

احتساب رسوم المرور

للحصول على معلومات حول احتساب رسوم المرور، يُرجى الاطّلاع على مقالة احتساب رسوم المرور.

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