کیت توسعه نرمافزار پیمایش برای iOS روشهای بهبودیافتهای برای مشخص کردن نقاطمسیر یا نقاط پیمایش ارائه میدهد که مسیریابی دقیقتر و تجربه ورود بهتری را بهویژه برای مقصدهایی با چند ورودی یا نقاط پیمایش خاص فراهم میکند. میتوانید بااستفاده از
navigationPointToken، که رشتهای است که مکان و بافت اضافی مسیر را کدگذاری میکند،
به مکانهای دقیق مسیریابی کنید. همچنین میتوانید مختصات طول و عرض جغرافیایی را با «شناسه مکان» ترکیب کنید تا بافت بیشتری اضافه شود.
پسزمینه
قبلاز نسخه ۱۰.۱۰، میتوانستید Waypoint را بااستفاده از مختصات مکان
یا «شناسه مکان» تعریف کنید. درحالیکه مسیریابی صرفاً براساس طول و عرض جغرافیایی گاهی مؤثر است، اما گاهی میتواند منجر به نقاط سوار و پیاده کردن غیراستاندارد شود، بهویژه برای مکانهای بزرگ، پارکها، یا ساختمانهایی که چندین ورودی دارند. ممکن است نتیجه به نزدیکترین بخش جاده بچسبد که شاید راحتترین یا درستترین نقطه دسترسی نباشد.
گزینههای بهبودیافته نقطهمسیر با امکان ارائه بافت بیشتر، این مشکل را برطرف میکنند.
استفاده از کد نقطه پیمایش
برای دقیقترین مسیریابی به نقاط دسترسی خاص مانند ورودیها،
باراندازها، یا مناطق تعیینشده برای سوار کردن مسافر، میتوانید از
navigationPointToken استفاده کنید.
این توکن با فراخوانی روش Destinations در Geocoding API بهدست میآید. این موجودیت نشاندهنده نقطه ناوبری خاص و قابلیابی است که با مکانی مرتبط است.
برای مشخص کردن یک توکن نقطه ناوبری:
یک
navigationPointTokenاز پاسخ روشSearchDestinationsGeocoding 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 ارسال میکند.
ترکیب شناسه جا و مکان
از نسخه ۱۰.۱۰، میتوانید هم شناسه مکان و هم مختصات مکان را هنگام ایجاد نقطهمسیر ارائه دهید. این روش زمانی مفید است که میخواهید نقطه دقیقی (مکان) را مشخص کنید و درعینحال بافت کلی مکان (شناسه مکان) را نیز ارائه دهید. این کار به 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 |
| مختصات مکان و شناسه جا باهم ترکیب شده است | تنظیم | تنظیم | غایب | مسیرهای منتهی به بخش جادهای که به مختصات تعریفشده نزدیکتر است | از شناسه مکان، هرچند اگر شناسه مکان خیلی از مختصات عرض جغرافیایی/طول جغرافیایی دور باشد نشان داده نمیشود |