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

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

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