ضبط الإعدادات المفضّلة للتوجيه

تعرض العمليات الحسابية للمسارات (بما في ذلك إعادة التوجيه) المسار الذي يستغرق أقل قدر من الوقت للتنقل باعتباره أفضل مسار. ولكن يمكنك تغيير استراتيجية التوجيه بحيث يتم إرجاع بدائل المسار الأقصر بدلاً من ذلك.

يعني مصطلح أقصر المسار الأقصر بين المسارات المثلى استنادًا إلى نموذج التكلفة التلقائي. قد لا يكون المسار الأقصر هو المسار الأقصر على الإطلاق لأن هذا الخيار قد يكون بديلاً سيئًا. على سبيل المثال، إذا كان أقصر طريق هو 10 كم واستغرق 50 دقيقة للتنقل فيه مسار آخر هو 15 كيلومتر، ولكن يستغرق 20 دقيقة فقط للتنقل، فإن الخيار الثاني هو الخيار الأمثل لأن قضاء 30 دقيقة لتقليل خمسة كيلومترات ليس مفاضلة جيدة.

بعد تعيين استراتيجية التوجيه للرحلة، لن تتغير حتى تكتمل الرحلة. لتغيير استراتيجية التوجيه لرحلة حالية، يجب محو الوجهات وإعادة ضبطها مرة أخرى باستخدام استراتيجية التوجيه الجديدة.

الحصول على تفاصيل المسار

لتحديد استراتيجية المسار التي تُعتبر الخيار الأمثل لنقطة طريق معيّنة، اتصل بـ 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 لعرض المسافة المتبقية

مثال

يوضّح مثال الرمز التالي كيفية ضبط تنسيق وسيلة شرح المسار.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);