تؤدي عمليات احتساب المسارات (بما في ذلك إعادة التوجيه) إلى عرض المسار الذي يستغرق أقصر وقت للتنقّل كـ أفضل مسار تلقائي. ولكن يمكنك تغيير استراتيجية التوجيه بحيث يتم عرض أقصر مسار من بدائل المسار بدلاً من ذلك.
يشير مصطلح أقصر إلى المسار الأقصر بين المسارات المثلى استنادًا إلى نموذج التكلفة التلقائي. قد لا يكون المسار الأقصر هو الأكثر اختصارًا ، لأنّ هذا الخيار قد يكون بديلاً غير مناسب. على سبيل المثال، إذا كان المسار الأقصر هو 10 كيلومتر ويستغرق 50 دقيقة للتنقّل، وكان المسار الآخر 15 كيلومترًا ويستغرق 20 دقيقة فقط للتنقّل، فإنّ الخيار الثاني هو الخيار الأمثل، لأنّ قضاء 30 دقيقة للتنقّل لمسافة 5 كيلومترات ليس خيارًا جيدًا.
بعد ضبط استراتيجية التوجيه لرحلة معيّنة، لن تتغيّر إلى أن تتم الرحلة. لتغيير استراتيجية التوجيه لرحلة حالية، عليك محو الوجهات وإعادة ضبطها مرة أخرى باستخدام استراتيجية التوجيه الجديدة.
الحصول على تفاصيل المسار
لتحديد استراتيجية المسار الأمثل لنقطة طريق معيّنة،
اتصل بالرقم 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 | تعرِض هذه القيمة المسافة المتبقية. |
مثال
يوضّح مثال الرمز البرمجي التالي كيفية ضبط تنسيق callout المسار.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;