«کیت توسعه نرمافزار پیمایش» برای iOS روشهای بهبودیافتهای برای مشخص کردن نقطهمسیرها یا نقاط پیمایش ارائه میدهد که مسیریابی دقیقتر و تجربه ورود بهتری را بهویژه برای مقصدهایی با چند ورودی یا نقاط پیمایش خاص فراهم میکند. میتوانید بااستفاده از
navigationPointToken، که رشتهای است که مکان و بافت مسیر اضافی را کدگذاری میکند،
به مکانهای دقیق مسیریابی کنید. همچنین میتوانید مختصات طول و عرض جغرافیایی را با «شناسه مکان» ترکیب کنید تا بافت بیشتری اضافه شود.
پسزمینه
قبلاز نسخه ۱۰.۱۰، میتوانستید Waypoint را بااستفاده از مختصات مکان
یا «شناسه مکان» تعریف کنید. درحالیکه مسیریابی صرفاً براساس طول و عرض جغرافیایی گاهی مؤثر است، اما گاهی میتواند منجر به نقاط سوار و پیاده کردن غیراپتیمال شود، بهویژه برای مکانهای بزرگ، پارکها، یا ساختمانهایی با چندین ورودی. ممکن است نتیجه به نزدیکترین بخش جاده بچسبد که شاید راحتترین یا درستترین نقطه دسترسی نباشد.
گزینههای نقطهمسیر بهبودیافته با امکان ارائه بافت بیشتر این مشکل را برطرف میکند.
استفاده از کد «نقطه پیمایش»
برای دقیقترین مسیریابی به نقاط دسترسی خاص مانند ورودیها، باراندازها، یا مناطق تعیینشده برای سوار کردن مسافر، میتوانید از navigationPointToken استفاده کنید.
این توکن با فراخوانی روش Destinations در Geocoding API بهدست میآید. این نقطه نشاندهنده یک نقطه ناوبری خاص و قابلیابی است که با مکانی مرتبط است.
برای مشخص کردن یک توکن نقطه ناوبری:
navigationPointTokenرا از پاسخ روش Destinations در Geocoding API دریافت کنید.وقتی
GMSNavigationWaypointایجاد میکنید،navigationPointTokenرا مشخص کنید.
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3..",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
آبجکتیو-سی
GMSNavigationWaypoint *waypointTwo =
[[GMSNavigationWaypoint alloc] initWithNavigationPointToken:@"sampleNavigationPointToken"
title:@"Sydney Opera House"];
استفاده از نشانهای نقطه پیمایش و نشانهای مسیر
میتوانید ازطریق Geocoding API یک کد نقطه ناوبری بازیابی کنید، یک کد مسیر از Routes API بازیابی کنید، و سپس هم کد نقطه ناوبری و هم کد مسیر را به Navigation SDK ارسال کنید. این در سناریوهایی مانند سفر اشتراکی یا تحویل مفید است، جایی که از Routes API برای محاسبه قیمت سفر استفاده میکنید و دقت یک کد نقطه ناوبری را میخواهید.
بااستفاده از کد مسیر، Navigation SDK ناوبری را در همان مسیری شروع میکند که برای محاسبه قیمت استفاده کردهاید. این کار خطر استفاده از مسیرهای طولانیتر یا کوتاهتر را برای سفر کاهش میدهد، که میتواند باعث «شوک قیمت» شود.
برای کسب اطلاعات بیشتر درباره مشخص کردن مکان بااستفاده از کد نقطه ناوبری و ایجاد کد مسیر، به اسناد Routes API مراجعه کنید. برای آشنایی با نحوه برنامهریزی مسیر بااستفاده از توکن مسیر، «برنامهریزی مسیر» را ببینید.
این نمودار نشان میدهد که چگونه یک برنامه همسفری یا تحویل از نشانهای نقطه ناوبری و نشانهای مسیر با هم استفاده میکند:
ترکیب شناسه جا و مکان
از نسخه ۱۰.۱۰، میتوانید هم «شناسه مکان» و هم مختصات مکان را هنگام ایجاد نقطهمسیر ارائه دهید. این روش زمانی مفید است که میخواهید نقطه دقیقی (مکان) را مشخص کنید و درعینحال بافت کلی مکان (شناسه مکان) را نیز ارائه دهید. این کار به Navigation SDK امکان میدهد تا با برجسته کردن ساختمان مقصد یا نشان دادن نقاط جالب اطراف مربوط به «شناسه مکان»، تجربه رسیدن غنیتری ارائه دهد.
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
آبجکتیو-سی
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
ملاحظات:
وقتی هم placeID و هم location را ارائه میکنید:
- این مسیر در درجه اول
locationمشخصشده را هدف قرار میدهد. - از
placeIdبهعنوان بافت برای بهبود تجربه ورود استفاده میشود. - جایگزین: اگر کیت توسعه نرمافزار تشخیص دهد که
placeIdارائهشده با ویژگیای مطابقت دارد که فاصله زیادی باlocationدادهشده دارد،placeIdنادیده گرفته خواهد شد. در این سناریو، مسیریابی فقط بهlocationادامه خواهد یافت، و بهبودهای تجربه ورود مختص مکان دردسترس نخواهد بود.
خلاصه پیکربندیهای نقطهمسیر معتبر
| مشخصات | location |
placeID |
navigationPointToken |
رفتار مسیریابی | برجسته کردن مقصد |
|---|---|---|---|---|---|
| فقط مختصات مکان | تنظیم | غایب | غایب | مسیرهای منتهی به بخش جادهای که به مختصات تعریفشده نزدیکتر است | اگر مقصد با اطمینان بالا قابلاستنباط باشد نشان داده میشود |
| فقط شناسه جا | غایب | تنظیم | غایب | مسیرهای منتهی به نقطه پیمایش پیشفرض برای «شناسه مکان» | از شناسه جا |
| فقط نشانه نقطه ناوبری | غایب | غایب | تنظیم | مسیرهای منتهی به نقطه پیمایش دقیق که با کد نشان داده شده است | از مقصد تعریفشده در روش اصلی مقصدها در درخواست Geocoding API |
| مختصات مکان و شناسه جا باهم ترکیب شده است | se | تنظیم | غایب | مسیرهای منتهی به بخش جادهای که به مختصات تعریفشده نزدیکتر است | از شناسه مکان، هرچند اگر شناسه مکان خیلی از مختصات عرض جغرافیایی/طول جغرافیایی دور باشد نشان داده نمیشود |