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

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

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