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