نقاط بین راه را مدیریت کنید

این سند توضیح می‌دهد که چگونه می‌توانید با استفاده از دو ویژگی، تنظیمات نقطه مسیر را برای برنامه خود مدیریت کنید:

  • تنظیمات مسیریابی کنار جاده
  • توقفگاه

تنظیم سمت ترجیحی مسیریابی جاده

به طور پیش‌فرض، کیت توسعه نرم‌افزار ناوبری (Navigation SDK) برای iOS سریع‌ترین مسیر را به یک نقطه بین‌راهی پیدا می‌کند، اما این تضمین نمی‌کند که کاربر به سمت مورد نظر جاده، مثلاً سمتی از جاده که مشتری یک راننده تاکسی اینترنتی منتظر اوست، برسد. ویژگی «ترجیحات مسیریابی سمت جاده» (Side of the Road Routing Preference) به شما این امکان را می‌دهد که مطمئن شوید وسیله نقلیه به سمت صحیح جاده می‌رسد.

چگونه کار می‌کند؟

شما هنگام ایجاد نقطه‌ی مسیر برای آن ایستگاه، اولویت رسیدن به یک سمت خاص از جاده را تعیین می‌کنید. می‌توانید این اولویت را به یکی از دو روش زیر مشخص کنید.

همان سمت جاده را ترجیح می‌دهم

شما مختصات جغرافیایی نقطه‌ی مسیر را ارائه می‌دهید و سپس یک پرچم با preferSameSideOfRoad تنظیم می‌کنید که نشان می‌دهد ترجیح می‌دهید در همان سمت جاده که نقطه‌ی مسیر قرار دارد، به آن برسید - که به نزدیکترین پیاده‌رو متصل می‌شود.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                   preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;

تنظیم عنوان ورود

شما مختصات جغرافیایی نقطه‌ی مسیر را ارائه می‌دهید، و سپس یک عنوان ورود preferredSegmentHeading ارائه می‌دهید که با جهت جریان ترافیک در همان سمت جاده که مقصد قرار دارد، مطابقت دارد.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

کیت توسعه نرم‌افزار ناوبری (Navigation SDK) نزدیک‌ترین بخش جاده به نقطه مسیر را انتخاب می‌کند - که جهت خط آن (با اختلاف +/- 55 درجه) با سمت جاده‌ای که نقطه مسیر در آن قرار دارد، هم‌تراز باشد.

تنظیم اولویت توقف

در مکان‌های خاصی، کاربران نمی‌توانند با خیال راحت توقف کنند (به عنوان مثال، مناطق مرتفع، کشتی‌ها، مکان‌های زیرزمینی و سایر مناطق با دسترسی محدود). ویژگی Stopover در صورتی که مکان نقطه مسیر برای توقف کاربر مناسب نباشد، آن را به مکانی نزدیک منتقل می‌کند. وقتی vehicleStopover روی YES تنظیم می‌کنید، در صورت وجود مکان جایگزین، نقطه مسیر به طور خودکار هنگام محاسبه مسیر جابجا می‌شود.

چگونه کار می‌کند؟

شما هنگام ایجاد نقطه‌ی بین‌راهی برای آن توقفگاه، اولویت آن توقفگاه را تنظیم می‌کنید. برای انجام این کار، اولویت توقفگاه را روی یک GMSNavigationMutableWaypoint همانطور که در مثال زیر نشان داده شده است، تنظیم کنید:

سویفت

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")!
waypoint.vehicleStopover = true
mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})

هدف-سی

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationMutableWaypoint *waypoint =
    [[GMSNavigationMutableWaypoint alloc] initWithLocation:location
                                                     title:@"waypoint from location"];
waypoint.vehicleStopover = YES;
[_mapView.navigator setDestinations:@[waypoint1]
                     routingOptions:routingOptions
                           callback:^(GMSRouteStatus routeStatus){...}];