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

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

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

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

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

لتحديد استراتيجية المسار الأنسب لنقطة على المسار معيّنة، اتّصِل بـ getRouteInfoForDestination() للحصول على تفاصيل المسار لكل من أفضل مسار تلقائي وأقصر مسار على الإطلاق. وتشمل التفاصيل المدة والمسافة إلى نقطة على المسار الوجهة.

تأتي هذه التفاصيل من GMSNavigationRouteInfo في دالة معاودة الاتصال.

مثال

يوضّح مثال الرمز البرمجي التالي كيفية الحصول على تفاصيل المسار لكل من استراتيجيتَي المسار.

Swift

let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
                                      routingOptions: routingOptions) { routeInfo in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions =
    [[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
                   withRoutingOptions:routingOptions
                             callback:^(GMSNavigationRouteInfo *routeInfo){...}];

ضبط استراتيجية التوجيه

يمكنك ضبط استراتيجية التوجيه باستخدام GMSNavigationRoutingOptions، وضبط routingStrategy عند طلب setDestinations().

تتّخذ السمة routingStrategy إحدى قيم تعداد الخيارات التالية:

قيمة تعداد الخياراتالوصف
GMSNavigationRoutingStrategyDefaultBest ترتيب المسارات حسب نموذج التكلفة التلقائي في حزمة Navigation SDK هذه هي استراتيجية التوجيه التلقائية.
GMSNavigationRoutingStrategyShorter ترتيب المسارات حسب المسافة المسار الأعلى ترتيبًا هو الأقصر بين المسارات التي تم عرضها.

مثال

يوضّح مثال الرمز البرمجي التالي كيفية ضبط استراتيجية تحديد أفضل مسار إلى المسار الأقصر.

Swift

let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
                           routingOptions: routingOptions) { routeStatus in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
            routingOptions:routingOptions
                  callback:^(GMSRouteStatus routeStatus){...}];

المسارات التي تشمل عبّارات

تستبعد حزمة تطوير البرامج للتنقّل على أجهزة iOS تلقائيًا المسارات التي تتضمّن عبّارات. إذا كنت تفضّل تضمين خيارات العبّارات كجزء من مساراتك، يمكنك تعديل إعدادات التوجيه المفضّلة هذه لعرض الرحلة على أجزاء العبّارات من خلال ضبط avoidsFerries على false.

مثال

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

تنسيق وسيلة شرح المسار

ضمن استراتيجية تحديد أفضل مسار للمسار الأقصر، تعرض وسائط الشرح على طول المسار تفاصيل المسافة. ولكن يمكنك استخدام وسيلة الشرح الخاصة بالوقت المقدَّر للوصول بدلاً من ذلك.

ضبط تنسيق وسيلة الشرح للمسار

يمكنك تغيير تنسيق وسيلة شرح المسار من خلال ضبط routeCalloutFormat في GMSMapView. تأخذ السمة routeCalloutFormat إحدى قيم تعداد الخيارات التالية:

قيمة تعداد الخياراتالوصف
GMSNavigationRouteCalloutFormatDefault تعرض هذه السمة الوقت المتبقي عند استخدام استراتيجية التوجيه التلقائية لأفضل مسار. تعرض هذه السمة المسافة المتبقية عند استخدام استراتيجية التوجيه إلى المسار الأقصر
GMSNavigationRouteCalloutFormatTime يعرض الوقت المتبقي.
GMSNavigationRouteCalloutFormatDistance Dتعرض المسافة المتبقية.

مثال

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;