الفئة المستهدَفة من هذا الدليل: يمكنك الاطّلاع على هذا الدليل إذا كنت مطوّر تطبيقات للأجهزة الجوّالة مسؤولاً عن إنشاء تجربة التنقّل خطوة بخطوة لسائقي الشاحنات أو الحافلات أو المركبات التجارية الكبيرة الأخرى.
محتوى هذا الدليل: يوضّح هذا الدليل كيفية استخدام مسار مخصّص للشاحنات تم إنشاؤه بواسطة Routes API أو Route Optimization API لتفعيل جلسة اتجاهات مفصّلة باستخدام Navigation SDK لنظام التشغيل Android.
أهداف الدورة التعليمية
ستتعرّف على كيفية تنفيذ المهام التالية:
- استخدِم
routeTokenلربط تخطيط المسار في الخلفية بتجربة التنقّل داخل التطبيق. - ضبط حزمة تطوير البرامج Navigation SDK لاستخدام مسار شاحنة مُخطَّط له مسبقًا
- كيفية ظهور القيود الخاصة بالشاحنات للسائق في واجهة مستخدم نظام الملاحة
المتطلبات الأساسية
قبل البدء، تأكَّد من استيفاء المتطلبات التالية:
1. طلب إذن الوصول إلى مشروعك
تتوفّر خدمة تحديد مسار المركبات الكبيرة لمجموعة محدودة من العملاء. لإبداء اهتمامك وطلب الوصول إلى مشروعك على Google Cloud، يُرجى ملء نموذج التواصل. سيتواصل معك أحد ممثّلي Google لإعلامك بالخطوات التالية.
بعد أن تمنحك Google إذن الوصول، تأكَّد من توفير مشروعك على Google Cloud لخدمة "تحديد مسار المركبات الكبيرة".
إذا كانت مؤسستك تستخدم مشاريع منفصلة على Google Cloud لواجهات برمجة التطبيقات الخاصة بتوجيه الخلفية وحزمة تطوير البرامج (SDK) الخاصة بخدمة "خرائط Google" على الأجهزة الجوّالة، يُرجى التواصل مع Google لتوفير كل مشروع.
2. إعداد إنشاء مسار الخلفية والحصول على رمز مميّز للمسار
قبل بدء التنقّل على الجهاز، يجب أن ينشئ خادم الخلفية مسارًا للشاحنة ويحصل على routeToken باستخدام إحدى واجهات برمجة التطبيقات التالية:
- Routes API: يُنصح باستخدامها لاحتساب مسارات شاحنة واحدة بين نقاط الانطلاق والوجهات. للحصول على تعليمات الإعداد، يُرجى الاطّلاع على إنشاء مسارات وتقديرات لوقت الوصول للشاحنات الكبيرة.
- Route Optimization API: يُنصح باستخدامها لتحسين المسارات التي تتضمّن عدّة محطات في أسطول من المركبات. لمزيد من المعلومات، يُرجى الاطّلاع على دليل توجيه المركبات الكبيرة في Route Optimization API.
يجب أن يحدّد طلب الخلفية travelMode: TRUCK بالإضافة إلى السمات المادية للمركبة (الارتفاع والعرض والطول والوزن وعدد المحاور وشحنة المواد الخطرة). تعرض واجهة برمجة التطبيقات الخاصة بالتوجيه routeToken في ردّها، والذي يمرّره خادم الخلفية إلى تطبيقك على الجهاز الجوّال.
3- استيفاء الحد الأدنى من متطلبات حزمة SDK والنظام
يجب أن يستخدم تطبيقك الحد الأدنى المطلوب من إصدار حزمة تطوير البرامج (SDK) لخدمة Navigation 5.2.0 أو إصدارًا أحدث.بالإضافة إلى ذلك، يجب أن يستوفي مشروعك متطلبات الإعداد العادية لحزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation.
القيود والإرشادات التشغيلية
قبل البدء، يُرجى ملاحظة القيود والإرشادات التشغيلية التالية:
- التوفّر الجغرافي: تتوفّر ميزة توجيه المركبات الكبيرة في الولايات المتحدة الـ 48 المتجاورة (متاحة للجميع) واليابان (تجريبية). لا تتوفّر هذه الخدمة في ألاسكا أو هاواي أو الأقاليم التابعة للولايات المتحدة.
- نصائح السلامة للسائقين: يجب ألا يعتمد السائقون بشكل كامل على المسارات التي تعرضها Navigation SDK لضمان السلامة أو الالتزام بالقانون. قد لا تكون المسارات مناسبة للمركبة في جميع ظروف الطريق، وقد يؤدي اتّباعها إلى تعريض السائقين لمخاطر، مثل الطرق التي لا تسمح بمرور المركبات المرتفعة أو الطرق التي تفرض قيودًا على الوزن. على السائقين أن يكونوا دائمًا في كامل وعيهم وأن يلتزموا بإشارات الطرق واللوائح التنظيمية المحلية.
- المسارات التي تتضمّن أفضل الحلول: عندما لا تتمكّن واجهة برمجة التطبيقات الخاصة بتحديد أفضل مسار من العثور على مسار يتوافق تمامًا مع القيود المفروضة على المركبات، تعرض مسارًا يتضمّن أفضل الحلول قد يظل يجتاز مقاطع محظورة. على سبيل المثال، تضبط واجهة Routes API العلامة
routeRestrictionsPartiallyIgnoredفي ردّها. عند التنقّل على هذه المسارات، تعرض حزمة تطوير البرامج (SDK) الخاصة بخدمة "التنقّل" وسائط شرح المسار لتسليط الضوء على القيود ذات الصلة. لذا، ننصحك بالتخطيط للمسارات بعناية في هذه الحالات وعدم استخدام مسار تم الإبلاغ عنه كمصدر وحيد للمعلومات عند التخطيط أو التنقّل. - الميزات غير المتوافقة: لا تتوافق ميزة توجيه المركبات الكبيرة مع الميزات التالية:
- أسعار رسوم عبور الشاحنات
- حدود السرعة الخاصة بالشاحنات أو المركبات الثقيلة
- تحديد مسار المواد الخطرة المشعّة
- حدود الاستخدام: تخضع الطلبات المُرسَلة إلى Navigation SDK لحدود الاستخدام والحصة العادية. لمزيد من المعلومات، يُرجى الاطّلاع على الاستخدام والفوترة.
عرض واجهة مستخدم مخصّصة للشاحنات (وسائل شرح المسار)
تعرض حزمة Navigation SDK تلقائيًا تحذيرات مرئية، تُعرف باسم وسائل شرح المسار، على الخريطة لتنبيه السائقين بشأن القيود القادمة على الشاحنات. تظهر وسيلة الشرح للقيود التي تحدث على طول المسار المخطّط له، ولكنّها لا تظهر على الطرق القريبة الأخرى.
تتضمّن حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation SDK وسيلة شرح للقيود التالية:
| القيود | رمز وسيلة الشرح ونصّها | شروط العرض |
|---|---|---|
| الطول |
اللون الأصفر = تحذير، مركبتك قريبة من الحد الأقصى للارتفاع المسموح به
اللون الأحمر = مركبتك أعلى من الحد الأقصى للارتفاع المسموح به |
يظهر وسيلة شرح صفراء عندما يكون ارتفاع المركبة قريبًا من الحدّ الأقصى المسموح به.
يظهر وسيلة شرح حمراء إذا كان المسار غير متوافق وينتهك قيود الارتفاع.
|
| الوزن |
|
يظهر وسيلة شرح حمراء عندما يتجاوز وزن المركبة الحدّ الأقصى المسموح به على الطريق.
|
| يُحظر مرور الشاحنات |
|
تظهر وسيلة شرح حمراء عند التنقّل على جزء من طريق
تُفرض فيه قيود على الشاحنات التجارية.
|
| السلع الخطرة |
|
يظهر تنبيه أحمر عندما يكون نقل المواد الخطرة بالمركبة محظورًا على جزء من الطريق.
|
طريقة عمل رموز المسار المميزة
routeToken هي لقطة مشفّرة لمسار أنشأه نظام الخلفية الخاص بخدمة التوجيه من Google. وهي تتضمّن شكل المسار المخطَّط له بالإضافة إلى الأبعاد المادية للمركبة وملف القيود.
يتّبع سير العمل الخطوات التالية:
- طلب مسار: يطلب خادم الخلفية مسار شاحنة من Routes API (أو Route Optimization API).
- تلقّي الرمز المميز: تحتسب واجهة برمجة التطبيقات الخاصة بالتوجيه المسار المتوافق وتعرض
routeTokenلخادم الخلفية. - الرمز المميّز المُعاد توجيهه: يمرّر خادم الخلفية الرمز
routeTokenوإحداثيات الوجهة إلى تطبيقك على الأجهزة الجوّالة. - إرسال إلى حزمة SDK: يرسل تطبيق الأجهزة الجوّالة
routeTokenإلى Navigation SDK. - بدء الإرشادات: يتولّى Navigation SDK جميع جوانب تجربة اتّجاهات مفصّلة، بما في ذلك عرض وسيلة شرح المسار والتعامل مع إعادة التوجيه الديناميكية وفقًا لقيود المركبة.
إعادة الحساب وتغيير المسار بشكلٍ ديناميكي
أثناء التنقّل النشط، قد تؤدي أحوال حركة المرور أو حالات إغلاق الطرق أو عدم اتّباع المنعطفات إلى خروج المركبة عن المسار المخطَّط له.
عند حدوث إعادة التوجيه:
- تعيد حزمة تطوير البرامج للتنقّل تلقائيًا احتساب المسار إلى الوجهة.
- تحتفظ حزمة SDK بسمات المركبة وأبعادها المرمّزة في
routeTokenالأصلية. - يتجنّب المسار الذي تمت إعادة حسابه حديثًا المناطق التي لا تسمح بمرور المركبات المرتفعة والجسور التي لا تسمح بمرور المركبات الثقيلة والطرق المحظورة على الشاحنات التجارية.
التنفيذ: بدء رحلة خاصة بالشاحنات
اتّبِع الخطوات التالية لتهيئة ميزة "الاتجاهات المفصّلة" وبدء استخدامها باستخدام رمز مميّز لمسار مركبة كبيرة.
الخطوة 1: الحصول على رمز المسار من الخلفية
يتلقّى تطبيقك على الأجهزة الجوّالة السلسلة routeToken بالإضافة إلى إحداثيات الوجهة من خادم الخلفية. للحصول على تفاصيل حول إنشاء هذا الرمز المميّز على الخادم، يُرجى الاطّلاع على إنشاء مسارات ووقت تقديري للوصول للمركبات الكبيرة في مستندات Routes API.
في ما يلي مثال على رمز مميّز للمسار:
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
الخطوة 2: إعداد CustomRoutesOptions
مرِّر رمز المسار المميّز إلى مثيل CustomRoutesOptions باستخدام
CustomRoutesOptions.builder:
- مرِّر الرمز المميّز باستخدام
setRouteToken(routeToken). - حدِّد وضع السفر باستخدام
setTravelMode(CustomRoutesOptions.TravelMode.DRIVING).
الخطوة 3: تحديد نقاط المرور وضبط الوجهات
مرِّر نقاط الطريق الخاصة بوجهتك وCustomRoutesOptions إلى navigator.setDestinations.
عند ضبط نقاط الطريق وتمرير خيارات مسار مخصّصة، يجب مراعاة ما يلي:
- متطلبات مطابقة الوجهة: يجب أن تتطابق إحداثيات الوجهة التي تم تمريرها إلى
setDestinationsمع إحداثيات الوجهة المستخدَمة عند إنشاءrouteToken. يؤدي تحديد وجهة مختلفة إلى حدوث خطأ. - التوجيه على جانب الطريق: لا يمكن للمركبات التجارية الكبيرة أن تنعطف بسهولة على شكل حرف U في الشوارع الضيقة. لضمان وصول الشاحنة إلى الوجهة
على الجانب الصحيح من الطريق، استخدِم
setPreferSameSideOfRoad(true)في نقاط الطريق. - محطات توقّف المركبة: لتوجيه الشاحنة إلى موقع مناسب للتوقّف أو التفريغ، استخدِم
setVehicleStopover(true)في نقاط الطريق. - نقاط التنقّل: إذا كانت وجهتك تتضمّن مدخلاً مخصّصًا للشحن أو رصيف تحميل، حدِّده باستخدام رمز نقطة التنقّل.
الخطوة 4: التعامل مع حالة المسار وبدء التوجيه
سجِّل OnResultListener على
ListenableResultFuture<Navigator.RouteStatus>. عندما تكون حالة المسار OK، اتّصِل بالرقم navigator.startGuidance لبدء التنقّل النشط باتجاهات مفصّلة.
مثال على الرمز
استخدِم CustomRoutesOptions.builder لضبط الرمز المميّز ثم مرِّره إلى navigator.setDestinations.
// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"
val customRoutesOptions = CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build()
// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
.setLatLng(10.0, 20.0)
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(destination);
navigator.setDestinations(destinations, customRoutesOptions)
أجهزة العرض داخل المركبة
يمكنك عرض جلسة التنقّل في المركبات الكبيرة على شاشات داخل لوحة القيادة باستخدام التنقّل في Android Auto.الخطوات التالية
- تعديل واجهة مستخدم التنقّل: يمكنك تخصيص عناصر التحكّم المضمّنة في واجهة المستخدم والعناصر المرئية، مثل البوصلة وزر إعادة التوسيط ومنظور الكاميرا.
- الاستماع إلى أحداث التنقّل: يمكنك التعامل مع تعديلات التنقّل وأحداث مراحل النشاط، مثل تقدّم المسار والتغييرات في الوقت المقدَّر للوصول وإعادة التوجيه.