یک مسیر حمل و نقل عمومی، دستورالعملهای ناوبری را با استفاده از گزینههای حمل و نقل عمومی موجود در منطقه ارائه میدهد. گزینههای حمل و نقل عمومی ممکن است شامل اتوبوس، مترو و قطار و موارد دیگر باشد. یک مسیر حمل و نقل عمومی معمولاً شامل دستورالعملهایی در مورد پیادهروی به، از و بین ایستگاههای حمل و نقل عمومی نیز میشود. از آنجا که یک مسیر حمل و نقل عمومی معمولاً شما را ملزم به استفاده از بیش از یک روش سفر میکند، نحوه درخواست مسیر و برخی از بخشهای پاسخ متفاوت است.
تفاوت مسیرهای ترانزیتی با سایر مسیرها
مسیرهای حمل و نقل عمومی که با تنظیم travelMode از TRANSIT درخواست میکنید، با مسیرهایی که از گزینههای travelMode مختلف استفاده میکنند، متفاوت هستند. شما نمیتوانید همه اشیاء و گزینههای یکسان را درخواست کنید و پاسخ، در مقایسه با سایر مسیرها، فیلدهای متفاوتی را برمیگرداند.
در API مسیرها، گامها به طور مداوم یک دستورالعمل ناوبری در تمام انواع سفرها هستند. بنابراین هر دستورالعمل ناوبری یک گام است. پاسخ یک مسیر حمل و نقل عمومی بسیار شبیه به مسیرهایی با سایر حالتهای سفر است، با چند تفاوت کلیدی:
| درخواست تفاوتها | تفاوتهای پاسخ | 
|---|---|
| شما نمیتوانید نقاط مسیر میانی را مشخص کنید. | شامل جزئیات حمل و نقل عمومی است. | 
| نمیتوان مسیرهای سازگار با محیط زیست پیدا کرد | شامل فراداده برای هر حالت سفر است که خلاصه مراحل آن حالت سفر را در `stepsOverview` نشان میدهد (برای درخواست این فراداده، از ماسک فیلد `routes.legs.stepsOverview` استفاده کنید). | 
| نمیتوان نحوه و امکان گنجاندن دادههای ترافیک را مشخص کرد | |
| نمیتوان ویژگیهای مسیر را برای اجتناب مشخص کرد | |
 فقط میتوان transitPreferences برای routingPreference مشخص کرد. برای جزئیات بیشتر، به TransitPreferences مراجعه کنید. | 
برای اطلاعات بیشتر در مورد پاسخی که توسط API مسیرها برگردانده میشود، به بررسی پاسخهای مسیر ترانزیت مراجعه کنید.
برای دریافت مسیر ترانزیت
مبدا و مقصد خود را تعیین کنید.
حالت سفر را روی ترانزیت تنظیم کنید:
travelMode: "TRANSIT"برای دریافت فیلدهای پاسخ مورد نظر خود، یک ماسک فیلد اضافه کنید. به «درخواست فیلدهای مسیر ترانزیت مورد نیاز» مراجعه کنید.
در صورت نیاز، پارامترهای اختیاری را تنظیم کنید. به تنظیم پارامترهای مسیر ترانزیت مراجعه کنید.
فیلدهای مسیر حمل و نقل مورد نیاز خود را درخواست کنید
فیلدهای مسیر ترانزیت مورد نیاز خود را با استفاده از ماسکهای فیلد درخواست کنید. جدول زیر شامل برخی از پاسخهای پیشنهادی برای یک مسیر ترانزیت و ماسک فیلد مورد استفاده برای درخواست آنها است.
| برای درخواست این اطلاعات | از این ماسک میدانی استفاده کنید | 
|---|---|
| تمام جزئیات مسیر |  routes.* | 
| تمام جزئیات حمل و نقل |  routes.legs.steps.transitDetails | 
| محل شروع برای هر پا |  routes.legs.steps.startLocation | 
| محل پایان برای هر پا |  routes.legs.steps.endLocation | 
| چندخطی مسیر برای هر مرحله |  routes.legs.steps.polyline | 
| نوع حمل و نقل مورد استفاده برای هر مرحله |  routes.legs.steps.travelMode | 
| کرایه تخمینی برای هر مرحله و مسیر، و کرایه تخمینی محلی |  routes.travel_advisory.transitFare localized routes.localizedValues.transitFare توجه:   | 
| متن محلی برای مدت زمان و مسافت |  routes.localizedValues | 
برای اطلاعات بیشتر در مورد تنظیم ماسک فیلدها، به «انتخاب فیلدها برای بازگشت» مراجعه کنید.
تنظیم پارامترهای مسیر ترانزیت
پارامترهای مربوط به مسیرهای ترانزیتی به شرح زیر است:
| برای انجام این کار | از این پارامتر استفاده کنید | یادداشتها | 
|---|---|---|
| انتخاب حالت حمل و نقل عمومی |  travelMode: "TRANSIT" | الزامی است. اطلاعات بیشتر . | 
| زمان ورود یا خروج را تنظیم کنید |  "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"یا "departureTime": "yyyy-mm-ddThh:mm:ssZ" |  اختیاری. میتوانید زمان ورود یا زمان خروج را مشخص کنید. اگر هیچکدام از این دو زمان مشخص نشوند، departure_time به طور پیشفرض برابر با زمان اجرای فعلی ( now ) خواهد بود. میتوانید زمان ورود و خروج را فقط در پنجره زمانی زیر تنظیم کنید، با مرجع زمان اجرای فعلی ( now ):
 توجه: برنامههای حمل و نقل عمومی مرتباً تغییر میکنند، سفرهای حمل و نقل عمومی موجود ممکن است با گذشت زمان تغییر کنند و هیچ تضمینی برای ارائه نتایج ثابت برای پیشبینیهای از قبل وجود ندارد.  | 
| مسیرهای جایگزین را لحاظ کنید |  "computeAlternativeRoutes": true | اختیاری. برای اینکه Compute Routes در صورت وجود، حداکثر ۳ مسیر اضافی را محاسبه کند، روی true تنظیم کنید. اطلاعات بیشتر | 
| تنظیمات برگزیده برای نوع حمل و نقل را مشخص کنید |  "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}توجه: اگر یک حالت سفر ترجیحی را مشخص کنید، مسیرهای رفت و برگشت ممکن است همچنان از حالتهای حمل و نقل عمومی دیگر استفاده کنند، حتی ممکن است فقط از حالتهای حمل و نقل عمومی دیگر استفاده کنند، که این بستگی به کارایی مسیر و در دسترس بودن سفر ترجیحی دارد.  | اختیاری. روشهای حمل و نقل ترجیحی خود را مشخص کنید. اطلاعات بیشتر | 
| تنظیمات برگزیده برای مسیر حمل و نقل را مشخص کنید |  "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} | اختیاری. تنظیمات مسیریابی حمل و نقل عمومی را مشخص کنید. اطلاعات بیشتر | 
مثال: دریافت مسیر در حمل و نقل عمومی
مثال زیر مسیری را در حین عبور با پارامترهای زیر دریافت میکند:
ترجیحات سفر با قطار و پیادهروی کمتر را مشخص میکند.
درخواست مسیرهای جایگزین دارد.
یک ماسک فیلد ارائه میدهد که جزئیات عبور را برمیگرداند:
curl -X POST -H 'content-type: application/json' -d '{ "origin": { "address": "Humberto Delgado Airport, Portugal" }, "destination": { "address": "Basílica of Estrela, Praça da Estrela, 1200-667 Lisboa, Portugal" }, "travelMode": "TRANSIT", "computeAlternativeRoutes": true, "transitPreferences": { routingPreference: "LESS_WALKING", allowedTravelModes: ["TRAIN"] }, }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.legs.steps.transitDetails' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
 پاسخ، فیلدهای route.legs.steps.transitDetails برای دو مسیر نشان میدهد:
{ "routes": [ { "legs": [ { "steps": [ {}, {}, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73532, "longitude": -9.14543 } } }, "arrivalTime": "2023-08-26T10:49:42Z", "departureStop": { "name": "Aeroporto", "location": { "latLng": { "latitude": 38.769047799999996, "longitude": -9.1284593 } } }, "departureTime": "2023-08-26T10:32:10Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "11:49" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:32" }, "timeZone": "Europe/Lisbon" } }, "headsign": "São Sebastião", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Vermelha", "color": "#f23061", "nameShort": "Vm", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 11 } }, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Rato", "location": { "latLng": { "latitude": 38.7201022, "longitude": -9.1540562 } } }, "arrivalTime": "2023-08-26T11:01:37Z", "departureStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73527, "longitude": -9.1455200000000012 } } }, "departureTime": "2023-08-26T10:57:57Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "12:01" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:57" }, "timeZone": "Europe/Lisbon" } }, "headsign": "Rato", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Amarela", "color": "#f2c200", "nameShort": "Am", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 4 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }