التنقّل على طرق المركبات الكبيرة

الفئة المستهدَفة من هذا الدليل: هذا الدليل مخصّص لمطوّري التطبيقات على الأجهزة الجوّالة المسؤولين عن إنشاء تجربة التنقّل باتّجاهات مفصّلة لسائقي الشاحنات أو الحافلات أو المركبات التجارية الكبيرة الأخرى.

المواضيع التي يغطّيها هذا الدليل: يوضّح هذا الدليل كيفية استخدام مسار خاص بالشاحنات تم إنشاؤه بواسطة Routes API أو Route Optimization API لتشغيل جلسة تنقّل باتّجاهات مفصّلة باستخدام Navigation SDK لنظام التشغيل iOS.

أهداف الدورة التعليمية

ستتعرّف على كيفية تنفيذ المهام التالية:

  • استخدام routeToken لربط التخطيط للمسار في الخلفية بتجربة التنقّل داخل التطبيق
  • إعداد Navigation SDK لاستخدام مسار شاحنة تم التخطيط له مسبقًا
  • فهم كيفية ظهور القيود الخاصة بالشاحنات للسائق في واجهة مستخدم التنقّل

المتطلبات الأساسية

قبل البدء، تأكَّد من استيفاء المتطلبات التالية:

1- طلب إذن الوصول إلى مشروعك

تتوفّر ميزة توجيه المركبات الكبيرة لمجموعة محدودة من العملاء. للتعبير عن اهتمامك وطلب إذن الوصول إلى مشروعك على Google Cloud، املأ نموذج التواصل. سيتواصل معك أحد ممثلي Google لإعلامك بالخطوات التالية.

بعد أن تمنحك Google إذن الوصول، تأكَّد من توفير ميزة توجيه المركبات الكبيرة في مشروعك على Google Cloud.

إذا كانت مؤسستك تستخدم مشاريع منفصلة على Google Cloud لواجهات برمجة التطبيقات الخاصة بتوجيه المسار في الخلفية وNavigation SDK على الأجهزة الجوّالة، تواصَل مع Google لتوفير كل مشروع.

2- إعداد عملية إنشاء المسار في الخلفية والحصول على رمز مميّز للمسار

قبل بدء التنقّل على الجهاز، يجب أن ينشئ خادم الخلفية مسارًا للشاحنة ويحصل على routeToken باستخدام إحدى واجهات برمجة التطبيقات التالية:

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

3- استيفاء الحد الأدنى من متطلبات حزمة SDK والنظام

يجب أن يستخدم تطبيقك الحد الأدنى من إصدار Navigation SDK المطلوب 5.4.0 أو إصدارًا أحدث.

بالإضافة إلى ذلك، يجب أن يستوفي مشروعك متطلبات الإعداد العادية في Navigation SDK.

القيود والإرشادات التشغيلية

قبل البدء، يُرجى مراعاة القيود والإرشادات التشغيلية التالية:

  • التوفّر الجغرافي: تتوفّر ميزة توجيه المركبات الكبيرة في الولايات المتحدة المتجاورة الـ 48 (تتوفّر بشكل عام) واليابان (تجريبية). ولا تتوفّر في ألاسكا أو هاواي أو الأقاليم التابعة للولايات المتحدة.
  • إرشادات السائق والسلامة: يجب ألا يعتمد السائقون فقط على المسارات التي تعرضها Navigation SDK لضمان سلامتها أو قانونيتها. قد لا تكون المسارات مناسبة للمركبة في جميع ظروف الطريق، وقد يؤدي اتّباعها إلى تعريض السائقين لمخاطر مثل الارتفاعات المنخفضة أو الطرقات التي تخضع لقيود على الوزن. يجب أن يكون السائقون دائمًا في حالة تأهّب وأن يلتزموا بعلامات الطرق المنشورة واللوائح التنظيمية المحلية.
  • المسارات التي يتم بذل قصارى الجهد لإنشائها: عندما لا تتمكّن واجهة برمجة التطبيقات الخاصة بتحديد أفضل مسار من العثور على مسار يتوافق تمامًا مع قيود المركبة، فإنّها تعرض مسارًا "يتم بذل قصارى الجهد لإنشائه" قد يظل يجتاز أقسامًا محظورة. على سبيل المثال، تضبط Routes API العلامة routeRestrictionsPartiallyIgnored في ردّها. عند التنقّل في هذه المسارات، تعرض Navigation SDK وسائل شرح للمسار لإبراز القيود ذات الصلة. في هذه الحالات، يجب التخطيط للمسارات بعناية وعدم استخدام مسار تم وضع علامة عليه كمصدر وحيد للحقيقة لأغراض التخطيط أو التنقّل.
  • الميزات غير المتوافقة: لا تتوافق ميزة توجيه المركبات الكبيرة مع الميزات التالية:
    • رسوم عبور الشاحنات
    • الحدود القصوى للسرعة الخاصة بالشاحنات أو المركبات الثقيلة
    • توجيه المسار للمواد الخطرة المشعّة
  • حدود الاستخدام: تخضع الطلبات المُرسَلة إلى Navigation SDK لحدود الاستخدام والحصص العادية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة الاستخدام والفوترة.

عرض واجهة مستخدم خاصة بالشاحنات (وسائل شرح المسار)

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

تتضمّن Navigation SDK وسائل شرح للقيود التالية:

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

آلية عمل الرموز المميّزة للمسار

routeToken هي لقطة مشفّرة لمسار أنشأته خلفية توجيه المسار من Google. وهي تتضمّن هندسة المسار المخطط له بالإضافة إلى الأبعاد المادية للمركبة وملف القيود.

تتّبع عملية سير العمل الخطوات التالية:

  1. طلب المسار: يطلب خادم الخلفية مسارًا للشاحنة من Routes API (أو Route Optimization API).
  2. تلقّي الرمز المميّز: تحسب واجهة برمجة التطبيقات الخاصة بتوجيه المسار المسار المتوافق و تعرض routeToken على خادم الخلفية.
  3. إعادة توجيه الرمز المميّز: يمرّر خادم الخلفية routeToken و إحداثيات الوجهة إلى تطبيقك على الأجهزة الجوّالة.
  4. تمرير إلى حزمة SDK: يمرّر التطبيق على الأجهزة الجوّالة routeToken إلى Navigation SDK.
  5. بدء التوجيه: تتولّى Navigation SDK جميع جوانب تجربة التنقّل باتّجاهات مفصّلة، بما في ذلك عرض وسائل شرح المسار والتعامل مع إعادة التوجيه الديناميكية وفقًا لقيود المركبة.

عمليات إعادة الحساب وإعادة التوجيه الديناميكية

أثناء التنقّل النشط، قد تؤدي أحوال حركة المرور أو إغلاق الطرق أو المنعطفات التي تم تفويتها إلى انحراف المركبة عن المسار المخطط له.

عند إعادة التوجيه:

  • تعيد Navigation SDK تلقائيًا حساب المسار إلى الوجهة.
  • تحتفظ حزمة SDK بسمات المركبة وأبعادها المشفّرة في routeToken الأصلي.
  • يتجنّب المسار الذي تم إعادة حسابه حديثًا الارتفاعات المنخفضة والجسور التي تخضع لقيود على الوزن والطرق المحظورة على الشاحنات التجارية.

التنفيذ: بدء رحلة خاصة بالشاحنات

اتّبِع الخطوات التالية لتهيئة وبدء التنقّل باتّجاهات مفصّلة باستخدام رمز مميّز لمسار مركبة كبيرة.

الخطوة 1: الحصول على الرمز المميّز للمسار من الخلفية

يتلقّى تطبيقك على الأجهزة الجوّالة السلسلة routeToken بالإضافة إلى إحداثيات الوجهة من خادم الخلفية. للحصول على تفاصيل حول إنشاء هذا الرمز المميّز على خادمك، يُرجى الاطّلاع على مقالة إنشاء مسارات للمركبات الكبيرة وتقديرات وقت الوصول في مستندات Routes API.

في ما يلي مثال على رمز مميّز للمسار:

{
  "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}

الخطوة 2: تمرير الرمز المميّز إلى Navigator

مرِّر routeToken ونقاط الطريق للوجهة إلى طريقة setDestinations في mapView.navigator.

عند إعداد نقاط الطريق وتمرير الرمز المميّز للمسار، يُرجى مراعاة ما يلي:

  • شرط مطابقة الوجهة: يجب أن تتطابق إحداثيات الوجهة التي تم تمريرها إلى setDestinations مع إحداثيات الوجهة المستخدَمة عند إنشاء routeToken. يؤدي تحديد وجهة مختلفة إلى حدوث خطأ.
  • توجيه المسار على جانب الطريق: لا يمكن للمركبات التجارية الكبيرة إجراء منعطفات على شكل حرف U بسهولة في الشوارع الضيقة. لضمان اقتراب الشاحنة من الوجهة على الجانب الصحيح من الطريق، اضبط preferSameSideOfRoad = true على نقاط الطريق.
  • توقفات المركبة: لتوجيه الشاحنة إلى موقع مناسب لـ التوقف أو التفريغ، اضبط vehicleStopover = true على نقاط الطريق.
  • نقاط التنقّل: إذا كانت وجهتك تتضمّن مدخلاً مخصّصًا للشحن أو رصيف تحميل، حدِّدها باستخدام رمز مميّز لـ نقطة التنقّل.

الخطوة 3: التعامل مع حالة المسار وبدء التوجيه

قيِّم GMSRouteStatus الذي تم عرضه في معاودة الاتصال setDestinations. عندما تكون الحالة .OK (GMSRouteStatusOK)، اضبط isGuidanceActive = true (guidanceActive = YES) لبدء التوجيه النشط باتّجاهات مفصّلة.

مثال للرمز

مرِّر الرمز المميّز للمسار إلى Navigation SDK باستخدام طريقة setDestinations في mapView.navigator، مع تحديد نقاط الطريق للوجهة نفسها التي استخدمتها عند إنشاء الرمز المميّز للمسار:

// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"

mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})

شاشات العرض داخل المركبة

يمكنك عرض جلسة التنقّل للمركبات الكبيرة على الشاشات داخل لوحة القيادة باستخدام ميزة "التنقّل" في CarPlay.

الخطوات التالية

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