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