برای محاسبه مسیر، باید حداقل مکانهای مبدأ و مقصد مسیر را مشخص کنید. این مکانها را بهعنوان ایستگاههای بین راهی در مسیر تعریف میکنید.
علاوهبر مبدأ و مقصد، میتوانید انواع مختلف ایستگاههای بین راه و نحوه مدیریت ایستگاههای بین راه برای مسیر را مشخص کنید. برای اطلاعات بیشتر و نمونهها، این موضوعات را ببینید:
- جهت خودرو و کنار جاده را مشخص کنید
- مشخص کردن نقطهمسیرهای میانی
- تنظیم توقف درطول مسیر
- تنظیم نقطهای برای عبور مسیر
- بهینهسازی ترتیب توقفها در مسیر
مشخص کردن مکانها برای مسیر
با ایجاد شیء نقطهمسیر (REST) یا نقطهمسیر (gRPC)، مکانی را نشان میدهید. در تعریف نقطهمسیر، میتوانید مکان را به یکی از روشهای زیر مشخص کنید:
- شناسه مکان (ترجیحی)
- مختصات طول/عرض جغرافیایی
- رشته نشانی («شیکاگو، ایلینوی» یا «داروین، قلمرو شمالی، استرالیا»)
- کد نقطه پیمایش
- کد پلاس
میتوانید مکانها را برای همه ایستگاههای بین راه در یک درخواست به یک روش مشخص کنید، یا میتوانید آنها را ترکیب کنید. برای مثال، میتوانید از مختصات طول/عرض جغرافیایی برای ایستگاه بین راهی مبدأ و از شناسه مکان برای ایستگاه بین راهی مقصد استفاده کنید.
برای کارایی و دقت، بهجای مختصات طول/عرض جغرافیایی یا رشتههای نشانی، از شناسههای مکان استفاده کنید. شناسههای مکان منحصربهفرد و صریح هستند و مزایای زمینکدگذاری برای مسیریابی، مثل نقاط دسترسی و متغیرهای ترافیک، ارائه میدهند. این کدها کمک میکنند از موقعیتهای زیر که ممکن است درنتیجه روشهای دیگر مشخص کردن مکان ایجاد شوند اجتناب شود:
- استفاده از مختصات طول/عرض جغرافیایی میتواند باعث شود مکان به نزدیکترین جاده به آن مختصات منطبق شود - که ممکن است نقطه دسترسی به ملک نباشد، یا حتی جادهای نباشد که سریع یا ایمن به مقصد منتهی شود.
- رشتههای نشانی ابتدا باید توسط Routes API زمینکدیابی شوند تا قبلاز محاسبه مسیر، به مختصات عرض جغرافیایی/طول جغرافیایی تبدیل شوند. این تبدیل میتواند بر عملکرد تأثیر بگذارد.
مکان را بهعنوان شناسه مکان مشخص کنید
میتوانید از شناسه مکان برای مشخص کردن مکان نقطه بین راه استفاده کنید. چون مختصات طول و عرض جغرافیایی به جادهها چسبانده میشود، ممکن است متوجه شوید که شناسه مکان در برخی شرایط نتایج بهتری ارائه میدهد.
شناسههای مکان را از Geocoding API و Places API (جدید) (ازجمله «تکمیل خودکار (جدید)») بازیابی کنید. برای اطلاعات بیشتر درباره شناسههای مکان، به نمای کلی شناسه مکان مراجعه کنید.
مثال زیر از دارایی placeId برای انتقال شناسه مکان برای هر دو
origin و destination استفاده میکند:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
مکان را بهعنوان مختصات طول و عرض جغرافیایی مشخص کنید
برای تعریف مکان در نقطهمسیر، مکان (REST) یا مکان (gRPC) را بااستفاده از مختصات طول/عرض جغرافیایی مشخص کنید.
برای مثال، نقطه بین راهی را برای مسیر origin و destination
بااستفاده از مختصات latitude و longitude مشخص کنید:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
مکان را بهعنوان رشته نشانی مشخص کنید
رشتههای نشانی نشانیهای واقعی هستند که با رشتهای نشان داده میشوند (مثلاً «1600 Amphitheatre Parkway, Mountain View, CA»). زمینکدیابی فرایند تبدیل رشته نشانی به مختصات عرض جغرافیایی و طول جغرافیایی است (مانند عرض جغرافیایی ۳۷٫۴۲۳۰۲۱ و طول جغرافیایی ۱۲۲٫۰۸۳۷۳۹-).
وقتی رشته نشانی را بهعنوان مکان ایستگاه بین راهی ارسال میکنید، «میانای برنامهسازی کاربردی مسیرها» بهطور داخلی رشته را زمینکدگذاری میکند تا آن را به مختصات عرض و طول جغرافیایی تبدیل کند.
برای مثال، برای محاسبه مسیر، نقطه واسطی را برای مسیر origin و
destination بااستفاده از رشتههای نشانی مشخص میکنید:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
در مثال زیر، Routes API هر دو نشانی را زمینکدیابی میکند تا آنها را به مختصات عرض جغرافیایی و طول جغرافیایی تبدیل کند.
اگر مقدار نشانی مبهم باشد، «میانای برنامهسازی کاربردی مسیرها» ممکن است جستجویی را برای رفع ابهام از نشانیهای مشابه فراخوانی کند. برای مثال، «خیابان اول» میتواند مقدار کامل یا مقدار جزئی برای «خیابان اول شمال شرقی» یا «خیابان اول جنوب شرقی» باشد. این نتیجه ممکن است با نتیجهای که ازسوی «میانای برنامهسازی کاربردی زمینکدیابی» برگردانده میشود متفاوت باشد. بااستفاده از شناسههای مکان میتوانید از تفسیرهای اشتباه احتمالی جلوگیری کنید.
تنظیم منطقه برای نشانی
اگر رشته نشانی ناقصی را بهعنوان مکان ایستگاه بین راهی ارسال کنید، ممکن است «میانای برنامهسازی کاربردی» از مختصات عرض جغرافیایی/طول جغرافیایی زمینکدشده اشتباه استفاده کند. برای مثال، درخواستی میکنید که در آن «تولدو» را بهعنوان مبدأ و «مادرید» را بهعنوان مقصد مسیر رانندگی مشخص میکنید:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
در این مثال، «تولدو» بهعنوان شهری در ایالت اوهایو در ایالات متحده تفسیر میشود، نه در اسپانیا. بنابراین، درخواست آرایه خالی برمیگرداند، یعنی هیچ مسیری وجود ندارد:
{ [] }
میتوانید میانای برنامهسازی کاربردی را پیکربندی کنید تا با افزودن پارامتر regionCode نتایج را بهنفع منطقه خاصی برگرداند. این پارامتر کد منطقه را بهعنوان
ccTLD ("دامنه سطح بالا")
مقدار دوحرفی مشخص میکند. اکثر کدهای ccTLD با کدهای ISO 3166-1 یکسان هستند، با
چند استثنای قابلتوجه. برای مثال، ccTLD پادشاهی متحد بریتانیای کبیر و ایرلند شمالی «uk»
(.co.uk) است، درحالیکه کد ISO 3166-1 آن «gb» است (ازنظر فنی برای نهاد «پادشاهی متحد بریتانیای کبیر و ایرلند شمالی»).
درخواست مسیریابی برای «تولدو» به «مادرید» که شامل پارامتر regionCode
است نتایج مناسبی برمیگرداند زیرا «تولدو» بهعنوان شهری در اسپانیا تفسیر میشود:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
پاسخ اکنون شامل مسیر محاسبهشده از تولدو، اسپانیا به مادرید، اسپانیا است:
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
مکان را بهعنوان نشانه نقطه پیمایش مشخص کنید
نشان پیمایش نقطه رشتهای است که مکان و زمینه مسیر اضافی را کدبندی میکند. نشانهای نقطه پیمایش میتوانند مسیریابی دقیقی به نقاط دسترسی خاص در نزدیکی ورودیها، باراندازها، یا مناطق تعیینشده برای سوار کردن ارائه دهند. این ویژگی در مواردی مثل تحویل غذا یا همسفری که ممکن است نقطه تحویل یا پیاده شدن مبهم باشد مفید است.
با فراخواندن روش «مقاصد» در Geocoding API میتوانید نشانهای برای نقطه ناوبری دریافت کنید.
برای مشخص کردن یک نشان پیمایش:
navigationPointTokenرا از روشSearchDestinationsدر Geocoding API دریافت کنید. برای اطلاعات بیشتر، به مستندات Geocoding API مراجعه کنید.- با ارسال
navigationPointToken، «نقطهمسیر» ایجاد کنید.
مثال زیر از دارایی navigation_point_token برای انتقال نشان پیمایش نقطه برای origin و destination استفاده میکند:
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
مشخص کردن مکان بهعنوان «کد پلاس»
بسیاری از افراد نشانی دقیقی ندارند، که این امر میتواند دریافت مرسولهها را برای آنها دشوار کند. یا، افراد دارای نشانی ممکن است ترجیح دهند محمولهها را در مکانهای دقیقتری، مثل ورودی پشتی یا بارانداز بارگیری، تحویل بگیرند.
«کدهای باز» مانند نشانی خیابان برای افراد یا مکانهایی هستند که نشانی واقعی ندارند. بهجای نشانیهایی که نام خیابان و شماره دارند، Plus Code براساس مختصات طول/عرض جغرافیایی است و بهصورت عدد و حرف نمایش داده میشود.
Google کدهای پلاس را توسعه داده است تا مزایای نشانی را برای همه و همه چیز فراهم کند. Plus Code مرجع مکان کدگذاریشدهای است که از مختصات طول/عرض جغرافیایی مشتق شده است و منطقهای را نشان میدهد: ۱/۸۰۰۰ درجه در ۱/۸۰۰۰ درجه (حدود ۱۴ متر در ۱۴ متر در خط استوا) یا کوچکتر. میتوانید از «کدهای پلاس» بهعنوان جایگزین نشانی خیابان در مکانهایی که نشانی خیابان وجود ندارد یا ساختمانها شمارهگذاری نشدهاند یا خیابانها نامگذاری نشدهاند استفاده کنید.
«کدهای پستی پلاس» باید بهصورت کد جهانی یا کد ترکیبی قالببندی شوند:
- کد جهانی از یک پیششماره ۴ نویسهای و یک کد محلی ۶ نویسهای یا طولانیتر تشکیل شده است.
برای مثال، برای نشانی «1600 Amphitheatre Parkway, Mountain View, CA»، کد جهانی «849V» و کد محلی «CWC8+R9» است. سپس از کل «کد پلاس» ۱۰ کاراکتری برای مشخص کردن مقدار مکان بهعنوان «849VCWC8+R9» استفاده میکنید.
- کد مرکب از یک کد محلی ۶ نویسهای یا طولانیتر که با یک مکان صریح ترکیب شده است تشکیل میشود.
برای مثال، نشانی «450 Serra Mall, Stanford, CA 94305, USA» کد محلی «CRHJ+C3» دارد. برای نشانی ترکیبی، کد محلی را با شهر، ایالت، کد پستی، و بخش کشور نشانی در قالب «CRHJ+C3 Stanford, CA 94305, USA» ترکیب کنید.
برای مثال، با مشخص کردن نقطه بین راه برای مسیر
originوdestinationبااستفاده از «کدهای پلاس»، مسیری را محاسبه کنید:{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
«کدهای پلاس» در «میاناهای برنامهسازی کاربردی پلاتفرم Google Maps» ازجمله تکمیل خودکار (جدید)، جزئیات مکان (جدید)، و میانای برنامهسازی کاربردی زمینکدیابی پشتیبانی میشود. برای مثال، میتوانید از Geocoding API برای معکوس کردن مختصات عرض/طول جغرافیایی مکان مشخصشده استفاده کنید تا «کد پستی» مکان را تعیین کنید.