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

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

پیشینه

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

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

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

از نسخه ۷.۴ به بعد، می‌توانید هنگام ایجاد یک Waypoint هم شناسه مکان و هم مختصات طول و عرض جغرافیایی را ارائه دهید. این روش زمانی مفید است که می‌خواهید یک نقطه دقیق (عرض/طول جغرافیایی) را مشخص کنید و در عین حال زمینه کلی مکان (شناسه مکان) را نیز ارائه دهید. این به 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 به عنوان زمینه‌ای برای بهبود تجربه ورود استفاده می‌شود.
  • جایگزینی: اگر SDK تشخیص دهد که placeId ارائه شده مربوط به ویژگی‌ای است که از latlng داده شده خیلی دور است، placeId نادیده گرفته می‌شود. در این سناریو، مسیریابی فقط به latlng ادامه می‌یابد و بهبودهای مربوط به تجربه ورود مختص به مکان در دسترس نخواهند بود.

استفاده از توکن نقطه ناوبری

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

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

  1. یک navigationPointToken از متد Destinations از پاسخ Geocoding API دریافت کنید.
  2. با استفاده از متد setNavigationPointToken() در سازنده، یک Waypoint ایجاد کنید.

نکته: هنگام استفاده از setNavigationPointToken() ، نمی‌توانید همزمان setLatLng() یا setPlaceIdString() استفاده کنید. این متدها با 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()

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

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