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

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

يشير المصطلح أقصر إلى المسار الأقصر بين المسارات المثلى استنادًا إلى نموذج التكلفة التلقائي لدينا. قد لا يكون المسار الأقصر هو المسار الأقصر على الإطلاق، لأنّ هذا الخيار قد يكون بديلاً سيئًا. على سبيل المثال، إذا كان أقصر مسار مطلق هو 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 يتم ترتيب المسارات حسب نموذج التكلفة التلقائي في حزمة تطوير البرامج (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 يعرض المسافة المتبقية.

مثال

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;