مسیر یک مسیر قابل پیمایش بین یک مکان شروع، یا مبدا، و یک مکان پایانی، یا مقصد است. می توانید مسیری را برای انواع مختلف حمل و نقل مانند پیاده روی، دوچرخه سواری یا انواع مختلف وسایل نقلیه انتخاب کنید. همچنین می توانید جزئیات مسیر مانند مسافت، زمان تخمینی برای پیمایش مسیر، عوارض مورد انتظار و دستورالعمل های گام به گام برای پیمایش مسیر را درخواست کنید.
برای درخواست مسیر بین دو مکان، متد computeRoutes()
فراخوانی کنید. مثال زیر تعریف یک درخواست و سپس فراخوانی computeRoutes()
برای دریافت مسیر نشان می دهد.
// Import the Routes library. const { Route } = await google.maps.importLibrary('routes'); // Define a computeRoutes request. const request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', }; // Call the computeRoutes() method to get routes. const {routes} = await Route.computeRoutes(request);
فیلدهایی را برای بازگشت انتخاب کنید
هنگامی که درخواست مسیر می کنید، باید از یک فیلد ماسک استفاده کنید تا مشخص کنید پاسخ چه اطلاعاتی را باید بازگرداند. می توانید نام ویژگی های کلاس Route را در فیلد ماسک مشخص کنید.
استفاده از یک فیلد ماسک همچنین تضمین میکند که دادههای غیرضروری درخواست نمیکنید، که به نوبه خود به تأخیر پاسخ کمک میکند و از بازگرداندن اطلاعاتی که سیستم شما به آن نیاز ندارد جلوگیری میکند.
همانطور که در قطعه زیر نشان داده شده است، با تنظیم ویژگی ComputeRoutesRequest.fields
، لیست فیلدهای مورد نیاز خود را مشخص کنید:
// Define a routes request. const request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', fields: ['path'], // Request fields needed to draw polylines. };
مکان هایی را برای یک مسیر مشخص کنید
برای محاسبه یک مسیر، باید حداقل مکان مبدا مسیر و مقصد مسیر و یک فیلد ماسک را مشخص کنید. همچنین میتوانید ایستگاههای بین راهی را در طول مسیر مشخص کنید و از ایستگاههای بین راهی برای انجام کارهای دیگری مانند افزودن ایستگاهها یا نقاط عبور در طول مسیر استفاده کنید.
در ComputeRoutesRequest
، می توانید یک مکان را به یکی از روش های زیر مشخص کنید:
- مکان (ترجیحا)
- مختصات طول و عرض جغرافیایی
- رشته آدرس ("Chicago, IL" یا "Darwin, NT, Australia")
- کد پلاس
میتوانید مکانها را برای همه ایستگاههای بین یک درخواست در یک درخواست مشخص کنید، یا میتوانید آنها را ترکیب کنید. به عنوان مثال، می توانید از مختصات طول و عرض جغرافیایی برای نقطه راه مبدا استفاده کنید و از یک شی Place برای نقطه بین مقصد استفاده کنید.
برای کارایی و دقت، به جای مختصات طول و عرض جغرافیایی یا رشته آدرس، از اشیاء Place استفاده کنید. شناسههای مکان به طور منحصربهفردی صریح هستند و مزایای کدگذاری جغرافیایی را برای مسیریابی مانند نقاط دسترسی و متغیرهای ترافیک ارائه میکنند. آنها به جلوگیری از موقعیتهای زیر کمک میکنند که میتواند ناشی از روشهای دیگر تعیین مکان باشد:
- استفاده از مختصات طول و عرض جغرافیایی می تواند منجر به گیرکردن مکان به نزدیکترین جاده به آن مختصات شود - که ممکن است نقطه دسترسی به ملک نباشد، یا حتی جاده ای که سریع یا ایمن به مقصد می رسد.
- رشته های آدرس ابتدا باید توسط Routes API کدگذاری شوند تا آنها را به مختصات طول و عرض جغرافیایی تبدیل کند تا بتواند مسیر را محاسبه کند. این تبدیل می تواند بر عملکرد تأثیر بگذارد.
یک مکان را به عنوان یک شی مکان مشخص کنید (ترجیحا)
برای تعیین یک مکان با استفاده از یک مکان، یک نمونه Place
جدید ایجاد کنید. قطعه زیر ایجاد نمونه های Place
جدید برای origin
و destination
و سپس استفاده از آنها در یک ComputeRoutesRequest
را نشان می دهد:
// Create a new Place for the origin. const originPlace = new Place({ id: 'ChIJiQHsW0m3j4ARm69rRkrUF3w', // Mountain View, CA }); // Create a new Place for the destination. const destinationPlace = new Place({ id: 'ChIJIQBpAG2ahYAR_6128GcTUEo', // San Francisco, CA }); // Define a computeRoutes request. const request = { origin: originPlace, destination: destinationPlace, fields: ['path'], };
مختصات طول و عرض جغرافیایی
برای تعیین یک مکان به عنوان مختصات طول و عرض جغرافیایی، یک نمونه جدید google.maps.LatLngLiteral
، google.maps.LatLngAltitude
یا google.maps.LatLngAltitudeLiteral
ایجاد کنید. قطعه زیر ایجاد نمونه های جدید google.maps.LatLngLiteral
برای origin
و destination
و سپس استفاده از آنها در یک computeRoutesRequest
را نشان می دهد:
// Create new LatLngLiteral objects for the origin and destination. // Mountain View, CA const originLatLng = {lat: 37.422000, lng: -122.084058}; // San Francisco, CA const destinationLatLng = {lat: 37.774929, lng: -122.419415}; // Define a computeRoutes request. const request = { origin: originLatLng, destination: destinationLatLng, fields: ['path'], };
رشته آدرس
رشته های آدرس آدرس های تحت اللفظی هستند که با یک رشته نمایش داده می شوند (مانند "1600 Amphitheatre Parkway, Mountain View, CA"). ژئوکدینگ فرآیند تبدیل یک رشته آدرس به مختصات طول و عرض جغرافیایی (مانند عرض جغرافیایی 37.423021 و طول جغرافیایی -122.083739) است.
هنگامی که یک رشته آدرس را به عنوان محل یک نقطه بین عبور می دهید، کتابخانه Routes رشته را برای تبدیل آن به مختصات طول و عرض جغرافیایی جغرافیایی می کند.
قطعه زیر ایجاد یک ComputeRoutesRequest
با یک رشته آدرس برای origin
و destination
را نشان می دهد:
// Define a computeRoutes request. const request = { origin: '1600 Amphitheatre Parkway, Mountain View, CA', destination: '345 Spear Street, San Francisco, CA', fields: ['path'], };
منطقه را برای آدرس تنظیم کنید
اگر یک رشته آدرس ناقص را بهعنوان محل یک ایستگاه بینالمللی ارسال کنید، API ممکن است از مختصات طول و عرض جغرافیایی اشتباه استفاده کند. به عنوان مثال، شما درخواستی را ارسال می کنید که "Toledo" را به عنوان مبدا و "Madrid" را به عنوان مقصد یک مسیر رانندگی مشخص می کنید:
// Define a request with an incomplete address string. const request = { origin: 'Toledo', destination: 'Madrid', };
در این مثال، «تولدو» به شهری در ایالت اوهایو در ایالات متحده تعبیر شده است، نه در اسپانیا. بنابراین، درخواست یک آرایه خالی برمی گرداند، به این معنی که هیچ مسیری وجود ندارد.
میتوانید API را طوری پیکربندی کنید که نتایج بایاس به یک منطقه خاص را با گنجاندن پارامتر regionCode برگرداند. این پارامتر کد منطقه را به عنوان یک مقدار دو کاراکتری ccTLD ("دامنه سطح بالا") مشخص می کند. اکثر کدهای ccTLD با کدهای ISO 3166-1 یکسان هستند، با برخی استثناهای قابل توجه. برای مثال، ccTLD بریتانیا "uk" (.co.uk) است در حالی که کد ISO 3166-1 آن "gb" است (از لحاظ فنی برای نهاد "پادشاهی متحده بریتانیای کبیر و ایرلند شمالی").
یک درخواست جهت برای "Toledo" به "Madrid" که شامل پارامتر regionCode است نتایج مناسبی را نشان می دهد زیرا "Toledo" به عنوان شهری در اسپانیا تفسیر می شود:
const request = { origin: 'Toledo', destination: 'Madrid', region: 'es', // Specify the region code for Spain. };
کد پلاس
بسیاری از مردم آدرس دقیقی ندارند، که می تواند دریافت تحویل را برای آنها دشوار کند. یا، افراد دارای آدرس ممکن است ترجیح دهند تحویل در مکانهای خاصتری مانند ورودی پشتی یا بارانداز را بپذیرند.
کدهای پلاس مانند آدرس های خیابان افراد یا مکان هایی هستند که آدرس واقعی ندارند. به جای آدرس هایی با نام و شماره خیابان، کدهای پلاس بر اساس مختصات طول و عرض جغرافیایی هستند و به صورت اعداد و حروف نمایش داده می شوند.
گوگل کدهای پلاس را توسعه داد تا از مزایای آدرس به همه و همه چیز استفاده کند. کد پلاس یک مرجع مکان رمزگذاری شده است که از مختصات طول و عرض جغرافیایی مشتق شده است و مساحتی را نشان می دهد: 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» ترکیب کنید.
قطعه زیر محاسبه یک مسیر را با تعیین یک نقطه بین مسیر برای مبدا و مقصد با استفاده از کدهای پلاس نشان می دهد:
const request = { origin: '849VCWC8+R9', // Mountain View, CA destination: 'CRHJ+C3 Stanford, CA 94305, USA', // Stanford, CA fields: ['path'], };