برای محاسبه یک مسیر، باید حداقل مکانهای مبدا و مقصد مسیر را مشخص کنید. شما این مکانها را به عنوان نقاط مسیر در مسیر تعریف میکنید.
علاوه بر مبدا و مقصد، میتوانید انواع مختلف نقاط مسیر و نحوه مدیریت نقاط مسیر برای یک مسیر را مشخص کنید. برای اطلاعات و مثالهای بیشتر، به این مباحث مراجعه کنید:
- جهت وسیله نقلیه و سمت جاده را مشخص کنید
- نقاط مسیر میانی را مشخص کنید
- در طول مسیر توقف کنید
- یک نقطه برای عبور مسیر تعیین کنید
- ترتیب توقفها در مسیر خود را بهینه کنید
مکانهای یک مسیر را مشخص کنید
شما با ایجاد یک شیء Waypoint (REST) یا Waypoint (gRPC) یک مکان را نمایش میدهید. در تعریف Waypoint، میتوانید یک مکان را به هر یک از روشهای زیر مشخص کنید:
- شناسه مکان (ترجیحاً)
- مختصات طول/عرض جغرافیایی
- رشته آدرس ("شیکاگو، ایلینوی" یا "داروین، انتی، استرالیا")
- کد پلاس
شما میتوانید مکانها را برای همه نقاط مسیر در یک درخواست به یک روش مشخص کنید، یا میتوانید آنها را با هم ترکیب کنید. برای مثال، میتوانید از مختصات طول و عرض جغرافیایی برای نقطه مسیر مبدا و از یک شناسه مکان برای نقطه مسیر مقصد استفاده کنید.
برای کارایی و دقت، از شناسههای مکان به جای مختصات طول/عرض جغرافیایی یا رشتههای آدرس استفاده کنید. شناسههای مکان به طور منحصر به فرد صریح هستند و مزایای کدگذاری جغرافیایی را برای مسیریابی مانند نقاط دسترسی و متغیرهای ترافیکی ارائه میدهند. آنها به جلوگیری از موقعیتهای زیر که میتوانند از روشهای دیگر مشخص کردن مکان ناشی شوند، کمک میکنند:
- استفاده از مختصات طول و عرض جغرافیایی میتواند منجر به نمایش مکان در نزدیکترین جاده به آن مختصات شود - که ممکن است نقطه دسترسی به ملک یا حتی جادهای که به سرعت یا با خیال راحت به مقصد منتهی میشود، نباشد.
- رشتههای آدرس ابتدا باید توسط API مسیرها (Routes API) کدگذاری جغرافیایی شوند تا قبل از اینکه بتوانند مسیری را محاسبه کنند، به مختصات عرض/طول جغرافیایی تبدیل شوند. این تبدیل میتواند بر عملکرد تأثیر بگذارد.
مشخص کردن یک مکان به عنوان شناسه مکان
شما میتوانید از شناسه مکان برای مشخص کردن مکان یک نقطه مسیر استفاده کنید. از آنجا که مختصات طول و عرض جغرافیایی به جادهها متصل میشوند، ممکن است در برخی شرایط، شناسه مکان نتایج بهتری ارائه دهد.
شناسههای مکان را از API مربوط به Geocoding و API مربوط به Places (شامل Place Autocomplete) بازیابی کنید. برای اطلاعات بیشتر در مورد شناسههای مکان، به نمای کلی شناسه مکان مراجعه کنید.
مثال زیر از ویژگی placeId برای ارسال شناسه مکان برای origin و destination استفاده میکند:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
مشخص کردن یک مکان به عنوان مختصات طول و عرض جغرافیایی
برای تعریف موقعیت مکانی در یک نقطه مسیر، موقعیت مکانی (REST) یا موقعیت مکانی (gRPC) را با استفاده از مختصات عرض/طول جغرافیایی مشخص کنید.
برای مثال، با استفاده از مختصات latitude و longitude ، یک نقطه مسیر برای origin و destination مسیر مشخص کنید:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
مشخص کردن یک مکان به عنوان یک رشته آدرس
رشتههای آدرس، آدرسهای تحتاللفظی هستند که توسط یک رشته نمایش داده میشوند (مانند "1600 Amphitheatre Parkway, Mountain View, CA"). ژئوکدینگ فرآیند تبدیل یک رشته آدرس به مختصات طول و عرض جغرافیایی است (مانند عرض جغرافیایی 37.423021 و طول جغرافیایی -122.083739).
وقتی یک رشته آدرس را به عنوان مکان یک نقطه مسیر ارسال میکنید، API مسیرها به صورت داخلی رشته را ژئوکد میکند تا آن را به مختصات طول و عرض جغرافیایی تبدیل کند.
برای مثال، برای محاسبه یک مسیر، با استفاده از رشتههای آدرس، یک نقطه مسیر برای origin و destination مسیر مشخص میکنید:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
در این مثال، API مسیرها هر دو آدرس را برای تبدیل به مختصات طول و عرض جغرافیایی، ژئوکد میکند.
اگر مقدار آدرس مبهم باشد، API مسیرها ممکن است جستجویی را برای رفع ابهام از آدرسهای مشابه فراخوانی کند. برای مثال، "خیابان اول" میتواند یک مقدار کامل یا یک مقدار جزئی برای "خیابان اول شمال شرقی" یا "خیابان اول جنوب شرقی" باشد. این نتیجه ممکن است با نتیجهای که توسط API ژئوکدینگ برگردانده میشود متفاوت باشد. شما میتوانید با استفاده از شناسههای مکان از تفسیرهای نادرست احتمالی جلوگیری کنید.
منطقه را برای آدرس تنظیم کنید
اگر یک رشته آدرس ناقص را به عنوان مکان یک نقطه مسیر ارسال کنید، API ممکن است از مختصات جغرافیایی طول/عرض جغرافیایی نادرست استفاده کند. برای مثال، شما درخواستی ارسال میکنید که "تولدو" را به عنوان مبدا و "مادرید" را به عنوان مقصد برای یک مسیر رانندگی مشخص میکند:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
در این مثال، "تولدو" به عنوان شهری در ایالت اوهایو در ایالات متحده تفسیر میشود، نه در اسپانیا. بنابراین، درخواست یک آرایه خالی را برمیگرداند، به این معنی که هیچ مسیری وجود ندارد:
{ [] }
شما میتوانید با وارد کردن پارامتر regionCode API را طوری پیکربندی کنید که نتایج را با توجه به یک منطقه خاص برگرداند. این پارامتر، کد منطقه را به عنوان یک مقدار دو کاراکتری 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", ... } ] }
یک مکان را به عنوان پلاس کد مشخص کنید
بسیاری از افراد آدرس دقیقی ندارند که میتواند دریافت مرسولات را برایشان دشوار کند. یا افرادی که آدرس دارند ممکن است ترجیح دهند مرسولات را در مکانهای خاصتری مانند ورودی پشتی یا اسکله بارگیری بپذیرند.
کدهای پلاس مانند آدرس خیابان برای افراد یا مکانهایی هستند که آدرس واقعی ندارند. به جای آدرسهایی با نام و شماره خیابان، کدهای پلاس بر اساس مختصات عرض/طول جغرافیایی هستند و به صورت عدد و حروف نمایش داده میشوند.
گوگل پلاس کدها را توسعه داده است تا مزایای آدرسها را برای همه و همه چیز فراهم کند. پلاس کد یک مرجع مکانی کدگذاری شده است که از مختصات عرض/طول جغرافیایی گرفته شده و نشاندهنده یک منطقه است: ۱/۸۰۰۰ درجه در ۱/۸۰۰۰ درجه (حدود ۱۴ متر در ۱۴ متر در خط استوا) یا کوچکتر. میتوانید از پلاس کدها به عنوان جایگزینی برای آدرس خیابانها در مکانهایی که آدرس خیابان وجود ندارد یا ساختمانها شمارهگذاری نشدهاند یا خیابانها نامگذاری نشدهاند، استفاده کنید.
کدهای پلاس باید به صورت یک کد سراسری یا یک کد مرکب قالببندی شوند:
- یک کد جهانی از یک کد منطقهای ۴ کاراکتری و یک کد محلی ۶ کاراکتری یا بیشتر تشکیل شده است.
برای مثال، برای آدرس "1600 Amphitheatre Parkway, Mountain View, CA"، کد جهانی "849V" و کد محلی "CWC8+R9" است. سپس شما از کل کد پلاس 10 کاراکتری برای مشخص کردن مقدار مکان به صورت "849VCWC8+R9" استفاده میکنید.
- یک کد ترکیبی از یک کد محلی ۶ کاراکتری یا بیشتر به همراه یک مکان صریح تشکیل شده است.
برای مثال، آدرس «۴۵۰ 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" }
کدهای پلاس در APIهای پلتفرم نقشههای گوگل از جمله Place Autocomplete ، Place Details ، Directions API (Legacy) و Geocoding API پشتیبانی میشوند. برای مثال، میتوانید از Geocoding API برای معکوس کردن geocoding یک مکان مشخص شده با مختصات عرض/طول جغرافیایی برای تعیین Plus Code آن مکان استفاده کنید.