تغییر دادن اولویت‌های مسیریابی

محاسبات مسیر (ازجمله تغییر مسیر) مسیری را که کمترین زمان را برای پیمایش نیاز دارد به‌عنوان بهترین مسیر پیش‌فرض برمی‌گرداند. اما می‌توانید راهبرد مسیریابی را تغییر دهید تا به‌جای آن، کوتاه‌ترین مسیر از بین مسیرهای جایگزین برگردانده شود.

اصطلاح کوتاه‌تر یعنی مسیری که در میان مسیرهای بهینه براساس مدل هزینه پیش‌فرض ما کوتاه‌ترین است. مسیر کوتاه‌تر ممکن است کوتاه‌ترین مسیر مطلق نباشد، زیرا آن گزینه ممکن است جایگزین مناسبی نباشد. برای مثال، اگر کوتاه‌ترین مسیر مطلق ۱۰ کیلومتر باشد و پیمودن آن ۵۰ دقیقه طول بکشد و مسیر دیگری ۱۵ کیلومتر باشد، اما پیمودن آن فقط ۲۰ دقیقه طول بکشد، گزینه دوم بهینه است، زیرا صرف ۳۰ دقیقه برای کاهش پنج کیلومتر معامله خوبی نیست.

وقتی استراتژی مسیریابی را برای سفری تنظیم می‌کنید، تا زمانی که سفر تکمیل نشود تغییر نخواهد کرد. برای تغییر استراتژی مسیریابی برای سفر موجود، باید مقصدها را پاک کنید و دوباره آن‌ها را با استراتژی مسیریابی جدید تنظیم کنید.

درحال دریافت جزئیات مسیر

برای تعیین اینکه کدام استراتژی مسیر انتخاب بهینه برای یک نقطه‌مسیر معین است، getRouteInfoForDestination() را فراخوانی کنید تا جزئیات مسیر را برای هر دو مسیر بهترین مسیر پیش‌فرض و مسیر مطلقاً کوتاه‌تر دریافت کنید. جزئیات شامل مدت زمان و فاصله تا ایستگاه بین راهی مقصد است.

این جزئیات از GMSNavigationRouteInfo در تماس برگشتی می‌آید.

مثال

مثال کد زیر نشان می‌دهد که چگونه جزئیات مسیر را برای هریک از دو استراتژی مسیریابی دریافت کنید.

Swift

let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
                                      routingOptions: routingOptions) { routeInfo in
  ...
}

آبجکتیو-سی

GMSNavigationRoutingOptions *routingOptions =
    [[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
                   withRoutingOptions:routingOptions
                             callback:^(GMSNavigationRouteInfo *routeInfo){...}];

درحال تنظیم استراتژی مسیریابی

می‌توانید راهبرد مسیریابی را بااستفاده از GMSNavigationRoutingOptions پیکربندی کنید، و routingStrategy را هنگام تماس با setDestinations() تنظیم کنید.

‫routingStrategy یکی از مقادیر شمارشی زیر را می‌گیرد:

ارزش فهرستشرح
GMSNavigationRoutingStrategyDefaultBest مسیرها را براساس مدل هزینه پیش‌فرض «کیت توسعه نرم‌افزار پیمایش» رتبه‌بندی می‌کند. این راهبرد رهیابی پیش‌فرض است.
GMSNavigationRoutingStrategyShorter مسیرها را براساس فاصله رتبه‌بندی می‌کند. مسیر دارای بالاترین رتبه کوتاه‌ترین مسیر از بین مسیرهای برگردانده‌شده است.

مثال

مثال کد زیر نحوه تنظیم استراتژی مسیریابی مسیر کوتاه‌تر را نشان می‌دهد.

Swift

let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
                           routingOptions: routingOptions) { routeStatus in
  ...
}

آبجکتیو-سی

GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
            routingOptions:routingOptions
                  callback:^(GMSRouteStatus routeStatus){...}];

مسیرهایی که شامل کشتی می‌شوند

به‌طور پیش‌فرض، «کیت توسعه نرم‌افزار پیمایش برای iOS» مسیرهایی را که شامل کشتی هستند مستثنا می‌کند. اگر ترجیح می‌دهید گزینه‌های کشتی را به‌عنوان بخشی از مسیرهایتان اضافه کنید، می‌توانید این اولویت مسیریابی را با تنظیم avoidsFerries روی false تغییر دهید تا سفر را برای بخش‌های کشتی نمایان کنید.

مثال

Swift

self.mapView.navigator?.avoidsFerries = false

آبجکتیو-سی

self.mapView.navigator.avoidsFerries = NO

قالب نوشته راهنمای مسیر

در استراتژی مسیریابی کوتاه‌تر، توضیحات درطول مسیر جزئیات فاصله را نمایش می‌دهد. اما می‌توانید به‌جای آن از «بازدیدبهای اقدام» استفاده کنید.

درحال پیکربندی قالب نوشته راهنمای مسیر

با تنظیم routeCalloutFormat در GMSMapView می‌توانید قالب نوشته راهنمای مسیر را تغییر دهید. ‫routeCalloutFormat یکی از مقادیر شمارشی زیر را می‌گیرد:

مقدار فهرستشرح
GMSNavigationRouteCalloutFormatDefault زمان باقی‌مانده را هنگام استفاده از استراتژی مسیریابی پیش‌فرض بهترین مسیر نمایش می‌دهد. وقتی از استراتژی مسیریابی مسیر کوتاه‌تر استفاده می‌کنید، فاصله باقی‌مانده را نمایش می‌دهد
GMSNavigationRouteCalloutFormatTime زمان باقی‌مانده را نمایش می‌دهد.
GMSNavigationRouteCalloutFormatDistance فاصله باقی‌مانده را نمایش می‌دهد.

مثال

نمونه کد زیر نحوه پیکربندی قالب فراخوانی مسیر را نشان می‌دهد.

Swift

self.mapView.routeCalloutFormat = .time

آبجکتیو-سی

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;