کیت توسعه نرمافزار ناوبری اندروید (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 به دست میآید. این توکن نشاندهنده یک نقطه ناوبری خاص و قابل مسیریابی مرتبط با یک مکان است.
برای مشخص کردن یک توکن نقطه ناوبری:
- یک
navigationPointTokenاز متد Destinations از پاسخ Geocoding API دریافت کنید. - با استفاده از متد
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 دور باشد نشان داده نمیشود |