برای محاسبه یک مسیر، باید حداقل مکان های مبدا مسیر و مقصد مسیر را مشخص کنید. شما این مکان ها را به عنوان ایستگاه های بین راهی در مسیر تعریف می کنید.
علاوه بر مبدا و مقصد، میتوانید انواع مختلفی از ایستگاههای بین راه و نحوه رسیدگی به ایستگاههای بین راهی را برای یک مسیر مشخص کنید. برای اطلاعات بیشتر و مثال ها به این موضوعات مراجعه کنید:
- مسیر خودرو و سمت جاده را مشخص کنید
- نقاط میانی را مشخص کنید
- یک توقف در مسیر تعیین کنید
- یک نقطه برای عبور از آن تعیین کنید
- ترتیب توقف ها را در مسیر خود بهینه کنید
مکان هایی را برای یک مسیر مشخص کنید
شما یک مکان را با ایجاد یک شیء Waypoint (REST) یا Waypoint (gRPC) نشان می دهید. در تعریف ایستگاه بین راه، می توانید یک مکان را به یکی از روش های زیر مشخص کنید:
- شناسه مکان (ترجیحا)
- مختصات طول و عرض جغرافیایی
- رشته آدرس ("Chicago, IL" یا "Darwin, NT, Australia")
- کد پلاس
میتوانید مکانها را برای همه ایستگاههای بین یک درخواست در یک درخواست مشخص کنید، یا میتوانید آنها را ترکیب کنید. به عنوان مثال، میتوانید از مختصات طول و عرض جغرافیایی برای نقطه راه مبدا استفاده کنید و از شناسه مکان برای ایستگاه مقصد استفاده کنید.
برای کارایی و دقت، به جای مختصات طول و عرض جغرافیایی یا رشته آدرس، از شناسه مکان استفاده کنید. شناسههای مکان به طور منحصربهفردی صریح هستند و مزایای کدگذاری جغرافیایی را برای مسیریابی مانند نقاط دسترسی و متغیرهای ترافیک ارائه میکنند. آنها به جلوگیری از موقعیتهای زیر کمک میکنند که میتواند ناشی از روشهای دیگر تعیین مکان باشد:
- استفاده از مختصات طول و عرض جغرافیایی می تواند منجر به گیرکردن مکان به نزدیکترین جاده به آن مختصات شود - که ممکن است نقطه دسترسی به ملک نباشد، یا حتی جاده ای که سریع یا ایمن به مقصد می رسد.
- رشته های آدرس ابتدا باید توسط Routes API کدگذاری شوند تا آنها را به مختصات طول و عرض جغرافیایی تبدیل کند تا بتواند مسیر را محاسبه کند. این تبدیل می تواند بر عملکرد تأثیر بگذارد.
یک مکان را به عنوان شناسه مکان مشخص کنید
می توانید از شناسه مکان برای تعیین مکان یک نقطه بین راه استفاده کنید. از آنجایی که مختصات طول و عرض جغرافیایی به جادهها متصل میشوند، ممکن است در برخی شرایط، شناسه مکان نتایج بهتری ارائه دهد.
شناسه مکان ها را از Geocoding API و Places API (از جمله 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) است.
هنگامی که یک رشته آدرس را به عنوان محل یک ایستگاه بین راهی ارسال می کنید، Routes API به صورت داخلی رشته را برای تبدیل آن به مختصات طول و عرض جغرافیایی جغرافیایی می کند.
به عنوان مثال، برای محاسبه یک مسیر، با استفاده از رشتههای آدرس، نقطهای برای origin
و destination
مسیر تعیین میکنید:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
در این مثال، Routes API هر دو آدرس را برای تبدیل آنها به مختصات طول و عرض جغرافیایی تعیین می کند.
اگر مقدار آدرس مبهم باشد، Routes API ممکن است جستجویی را برای رفع ابهام از آدرسهای مشابه فراخوانی کند. به عنوان مثال، "خیابان اول" می تواند یک مقدار کامل یا مقدار جزئی برای "خیابان اول NE" یا "1st St SE" باشد. این نتیجه ممکن است با آنچه که توسط Geocoding API برگردانده شده است متفاوت باشد. با استفاده از شناسه مکان می توانید از تفسیرهای نادرست احتمالی جلوگیری کنید.
منطقه را برای آدرس تنظیم کنید
اگر یک رشته آدرس ناقص را بهعنوان محل یک ایستگاه بینالمللی ارسال کنید، API ممکن است از مختصات طول و عرض جغرافیایی اشتباه استفاده کند. به عنوان مثال، شما درخواستی را ارسال می کنید که "Toledo" را به عنوان مبدا و "Madrid" را به عنوان مقصد یک مسیر رانندگی مشخص می کنید:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
در این مثال، «تولدو» به شهری در ایالت اوهایو در ایالات متحده تعبیر شده است، نه در اسپانیا. بنابراین، درخواست یک آرایه خالی برمی گرداند، به این معنی که هیچ مسیری وجود ندارد:
{ [] }
میتوانید API را طوری پیکربندی کنید که نتایج بایاس به یک منطقه خاص را با گنجاندن پارامتر regionCode
برگرداند. این پارامتر کد منطقه را به عنوان یک مقدار دو کاراکتری ccTLD ("دامنه سطح بالا") مشخص می کند. اکثر کدهای ccTLD با کدهای ISO 3166-1 یکسان هستند، با برخی استثناهای قابل توجه. برای مثال، ccTLD بریتانیا "uk" (.co.uk) است در حالی که کد ISO 3166-1 آن "gb" است (از لحاظ فنی برای نهاد "پادشاهی متحده بریتانیای کبیر و ایرلند شمالی").
یک درخواست جهت برای "Toledo" به "Madrid" که شامل پارامتر regionCode
است نتایج مناسبی را نشان می دهد زیرا "Toledo" به عنوان شهری در اسپانیا تفسیر می شود:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
پاسخ اکنون شامل مسیر محاسبه شده از تولدو، اسپانیا به مادرید، اسپانیا است:
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
یک مکان را به عنوان کد پلاس مشخص کنید
بسیاری از مردم آدرس دقیقی ندارند، که می تواند دریافت تحویل را برای آنها دشوار کند. یا، افراد دارای آدرس ممکن است ترجیح دهند تحویل در مکانهای خاصتری مانند ورودی پشتی یا بارانداز را بپذیرند.
کدهای پلاس مانند آدرس های خیابان افراد یا مکان هایی هستند که آدرس واقعی ندارند. به جای آدرس هایی با نام و شماره خیابان، کدهای پلاس بر اساس مختصات طول و عرض جغرافیایی هستند و به صورت اعداد و حروف نمایش داده می شوند.
گوگل کدهای پلاس را توسعه داد تا از مزایای آدرس به همه و همه چیز استفاده کند. کد پلاس یک مرجع مکان رمزگذاری شده است که از مختصات طول و عرض جغرافیایی مشتق شده است و مساحتی را نشان می دهد: 1/8000 درجه در 1/8000 درجه (حدود 14 متر در 14 متر در خط استوا) یا کوچکتر. میتوانید از کدهای پلاس بهعنوان جایگزینی برای آدرسهای خیابان در مکانهایی که وجود ندارند یا ساختمانها شمارهگذاری نشدهاند یا خیابانها نامی ندارند، استفاده کنید.
کدهای پلاس باید به صورت یک کد جهانی یا یک کد ترکیبی قالب بندی شوند:
- یک کد جهانی از یک کد منطقه 4 کاراکتری و کد محلی 6 کاراکتری یا بیشتر تشکیل شده است.
به عنوان مثال، برای آدرس "1600 Amphitheatre Parkway, Mountain View, CA"، کد جهانی "849V" و کد محلی "CWC8+R9" است. سپس از کل 10 کاراکتر Plus Code استفاده می کنید تا مقدار مکان را به عنوان "849VCWC8+R9" مشخص کنید.
- یک کد ترکیبی از یک کد محلی 6 کاراکتری یا بیشتر همراه با یک مکان صریح تشکیل شده است.
به عنوان مثال، آدرس "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" }
کدهای پلاس در APIهای پلتفرم Google Maps از جمله تکمیل خودکار مکان ، جزئیات مکان ، API مسیرها و API جغرافیایی پشتیبانی میشوند. برای مثال، میتوانید از Geocoding API برای معکوس کردن geocoding یک مکان مشخص شده توسط مختصات طول و عرض جغرافیایی برای تعیین کد پلاس مکان استفاده کنید.