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