تؤدي عمليات احتساب المسارات (بما في ذلك إعادة التوجيه) إلى عرض المسار الذي يستغرق أقصر وقت للتنقّل كـ أفضل مسار تلقائي. ولكن يمكنك تغيير استراتيجية التوجيه بحيث يتم عرض أقصر مسار من بدائل المسار بدلاً من ذلك.
يشير مصطلح أقصر إلى المسار الأقصر بين المسارات المثلى استنادًا إلى نموذج التكلفة التلقائي. قد لا يكون المسار الأقصر هو الأكثر اختصارًا ، لأنّ هذا الخيار قد يكون بديلاً غير مناسب. على سبيل المثال، إذا كان المسار الأقصر هو 10 كيلومتر ويستغرق 50 دقيقة للتنقّل، وكان المسار الآخر 15 كيلومترًا ويستغرق 20 دقيقة فقط للتنقّل، فإنّ الخيار الثاني هو الخيار الأمثل، لأنّ قضاء 30 دقيقة للتنقّل لمسافة 5 كيلومترات ليس خيارًا جيدًا.
بعد ضبط استراتيجية التوجيه لرحلة معيّنة، لن تتغيّر إلى أن تتم الرحلة. لتغيير استراتيجية التوجيه لرحلة حالية، عليك محو الوجهات وإعادة ضبطها مرة أخرى باستخدام استراتيجية التوجيه الجديدة.
الحصول على تفاصيل المسار
لتحديد استراتيجية المسار التي تشكّل الخيار الأمثل لنقطة اتّجاه معيّنة، اتصل بالرقم getRouteInfo()
للحصول على تفاصيل المسار لكلّ من
أفضل مسار تلقائي والمسار الأقصر. تشمل التفاصيل المدة
والمسافة إلى نقطة مسار الوجهة.
تأتي هذه التفاصيل من RouteInfo
، ويتم عرضها في ملف
ListenableResultFuture
.
مثال
يوضّح مثال الرمز البرمجي التالي كيفية الحصول على تفاصيل المسار لكلّ من استراتيجيتَي التوجيه.
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
ضبط استراتيجية التوجيه
يمكنك ضبط استراتيجية التوجيه من خلال ضبط
RoutingOptions.routingStrategy
عند الاتصال بالرقم setDestinations()
.
يأخذ RoutingOptions.routingStrategy
إحدى قيم التعداد التالية:
قيمة التعداد | الوصف |
---|---|
RoutingStrategy.DEFAULT_BEST | ترتيب المسارات حسب نموذج التكلفة التلقائي لحزمة تطوير البرامج (SDK) للتنقّل هذه هي استراتيجية التوجيه التلقائية. |
RoutingStrategy.SHORTER | ترتيب المسارات حسب المسافة المسار الأعلى ترتيبًا هو أقصر المسارات التي يتم عرضها. |
مثال
يوضّح مثال الرمز البرمجي التالي كيفية ضبط المسار الأقصر.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
المسارات التي تتضمّن العبّارات
تستبعد حزمة NavSDK تلقائيًا المسارات التي تتضمّن العبّارات. إذا
كنت تفضّل تضمين خيارات النقل البحري كجزء من مساراتك، يمكنك تعديل
إعدادات التوجيه المفضّلة هذه لعرض الرحلة على أقسام النقل البحري من خلال ضبط قيمة
avoidFerries
على false
.
مثال
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
تنسيق وسيلة شرح المسار
ضمن الإعداد المفضّل للمسار الأقصر، تعرض التعليقات التوضيحية على طول المسار تفاصيل المسافة. ولكن يمكنك استخدام وسائل الشرح المتعلّقة بالوقت المقدَّر للوصول بدلاً من ذلك.
ضبط تنسيق نص الوصف للمسار
يمكنك تغيير تنسيق نص الوصف للمسار من خلال استدعاء setRouteCalloutInfoFormat
في NavigationView
(أو في NavigationFragment
). يأخذ setRouteCalloutInfoFormat
إحدى قيم التعداد التالية:
قيمة التعداد | الوصف |
---|---|
RouteCalloutInfoFormat.DEFAULT | تعرِض هذه السمة الوقت المتبقّي عند استخدام استراتيجية توجيه أفضل مسار تلقائيًا. تعرِض هذه السمة المسافة المتبقية عند استخدام استراتيجية توجيه المسار الأقصر. |
RouteCalloutInfoFormat.TIME | تعرِض هذه السمة الوقت المتبقّي. |
RouteCalloutInfoFormat.DISTANCE | تعرِض هذه البطاقة المسافة المتبقية. |
مثال
يوضّح مثال الرمز البرمجي التالي كيفية ضبط تنسيق callout المسار.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);