مسیر به نقاط ناوبری

«کیت توسعه نرم‌افزار پیمایش برای Android» روش‌های بهبودیافته‌ای برای مشخص کردن نقطه‌مسیرها یا نقاط پیمایش ارائه می‌دهد که مسیریابی دقیق‌تر و تجربه ورود بهتری را به‌ویژه برای مقصدهایی با چند ورودی یا نقاط پیمایش خاص فراهم می‌کند. می‌توانید بااستفاده از navigationPointToken، که رشته‌ای است که مکان و بافت مسیر اضافی را کدگذاری می‌کند، به مکان‌های دقیق مسیریابی کنید. همچنین می‌توانید مختصات طول و عرض جغرافیایی را با «شناسه مکان» ترکیب کنید تا بافت بیشتری اضافه شود.

پس‌زمینه

قبل‌از نسخه ۷.۴، می‌توانستید Waypoint را بااستفاده از مختصات طول و عرض جغرافیایی یا «شناسه مکان» تعریف کنید. اگرچه مسیریابی صرفاً براساس طول و عرض جغرافیایی گاهی مؤثر است، اما گاهی می‌تواند به نقاط سوار یا پیاده کردن غیراستاندارد منجر شود، به‌ویژه برای مکان‌های بزرگ، پارک‌ها، یا ساختمان‌هایی که چند ورودی دارند. ممکن است نتیجه به نزدیک‌ترین بخش جاده بچسبد که شاید مناسب‌ترین یا صحیح‌ترین نقطه ناوبری نباشد.

گزینه‌های نقطه‌مسیر بهبودیافته با امکان ارائه بافت بیشتر این مشکل را برطرف می‌کنند.

استفاده از کد نقطه پیمایش

برای دقیق‌ترین مسیریابی به نقاط پیمایش خاص مانند ورودی‌ها، باراندازها، یا مناطق تعیین‌شده برای سوار کردن مسافر، می‌توانید از navigationPointToken استفاده کنید. این کد با فراخوانی روش destinations در Geocoding API به‌دست می‌آید. این نقطه نشان‌دهنده یک نقطه ناوبری خاص و قابل‌یابی است که با مکانی مرتبط است.

برای مشخص کردن یک توکن نقطه ناوبری:

  1. navigationPointToken را از پاسخ روش Destinations در Geocoding API دریافت کنید.
  2. Waypoint را بااستفاده از روش setNavigationPointToken() در سازنده ایجاد کنید.
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithToken = Waypoint.builder()
    .setTitle(destinationName)
    .setNavigationPointToken(navPointToken)
    .build();

// Use this waypoint in navigator.setDestinations()

استفاده از نشان‌های نقطه پیمایش و نشان‌های مسیر

می‌توانید ازطریق Geocoding API یک کد نقطه ناوبری بازیابی کنید، یک کد مسیر از Routes API بازیابی کنید، و سپس هم کد نقطه ناوبری و هم کد مسیر را به Navigation SDK ارسال کنید. این در سناریوهایی مانند سفر اشتراکی یا تحویل مفید است، جایی که از Routes API برای محاسبه قیمت سفر استفاده می‌کنید و دقت یک کد نقطه ناوبری را می‌خواهید.

بااستفاده از کد مسیر، Navigation SDK ناوبری را در همان مسیری شروع می‌کند که برای محاسبه قیمت استفاده کرده‌اید. این کار خطر استفاده از مسیرهای طولانی‌تر یا کوتاه‌تر را برای سفر کاهش می‌دهد، که می‌تواند باعث «شوک قیمت» شود.

برای کسب اطلاعات بیشتر درباره مشخص کردن مکان بااستفاده از کد نقطه ناوبری و ایجاد کد مسیر، به اسناد Routes API مراجعه کنید. برای آشنایی با نحوه برنامه‌ریزی مسیر بااستفاده از توکن مسیر، «برنامه‌ریزی مسیر» را ببینید.

این نمودار نشان می‌دهد که چگونه یک برنامه هم‌سفری یا تحویل از نشان‌های نقطه ناوبری و نشان‌های مسیر با هم استفاده می‌کند:

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

ترکیب کردن شناسه مکان و طول و عرض جغرافیایی

از نسخه ۷.۴، می‌توانید هم «شناسه مکان» و هم مختصات طول و عرض جغرافیایی را هنگام ایجاد Waypoint ارائه دهید. این روش زمانی مفید است که می‌خواهید نقطه دقیقی (طول/عرض جغرافیایی) را مشخص کنید و درعین‌حال بافتار مکان کلی (شناسه مکان) را ارائه دهید. این کار به Navigation SDK اجازه می‌دهد تا با برجسته کردن ساختمان مقصد یا نشان دادن نقاط جالب اطراف مرتبط با «شناسه مکان»، تجربه ورود غنی‌تری ارائه دهد.

// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
    .setTitle(destinationName)
    .setPlaceIdString(placeId)
    .setLatLng(lat, lng)
    .build();

// Use this waypoint in navigator.setDestinations()

ملاحظات

وقتی هم placeId و هم latlng را ارائه می‌کنید:

  • این مسیر در درجه اول latlng مشخص‌شده را هدف قرار می‌دهد.
  • از placeId به‌عنوان بافت برای بهبود تجربه ورود استفاده می‌شود.
  • جایگزین: اگر کیت توسعه نرم‌افزار تشخیص دهد که placeId ارائه‌شده با ویژگی‌ای مطابقت دارد که از latlng ارائه‌شده بسیار دور است، placeId نادیده گرفته خواهد شد. در این سناریو، مسیریابی فقط به latlng ادامه خواهد یافت و بهبودهای تجربه ورود مختص مکان دردسترس نخواهد بود.

خلاصه پیکربندی‌های معتبر نقطه‌مسیر

روش setLatLng() setPlaceIdString() setNavigationPointToken() رفتار مسیریابی برجسته کردن مقصد
فقط مختصات طول/عرض جغرافیایی تنظیم غایب غایب مسیرهای منتهی به بخش جاده‌ای که به مختصات تعریف‌شده نزدیک‌تر است اگر مقصد با اطمینان بالا قابل‌استنباط باشد نشان داده می‌شود
فقط شناسه جا غایب تنظیم غایب مسیرهای منتهی به نقطه پیمایش پیش‌فرض برای «شناسه مکان» از شناسه جا
فقط نشانه نقطه ناوبری غایب غایب تنظیم مسیرهای منتهی به نقطه پیمایش دقیق که با کد نشان داده شده است از مقصد تعریف‌شده در روش اصلی مقصدها در درخواست Geocoding API
ترکیب مختصات طول/عرض جغرافیایی و شناسه مکان تنظیم تنظیم غایب مسیرهای منتهی به بخش جاده‌ای که به مختصات تعریف‌شده نزدیک‌تر است از شناسه مکان، هرچند اگر شناسه مکان خیلی از مختصات عرض جغرافیایی/طول جغرافیایی دور باشد نشان داده نمی‌شود