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

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

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