یک مسیر ترانزیت دریافت کنید

یک مسیر ترانزیت دستورالعمل های ناوبری را با استفاده از گزینه های حمل و نقل عمومی موجود در منطقه ارائه می دهد. گزینه های حمل و نقل ممکن است شامل اتوبوس، مترو، و قطار و غیره باشد. یک مسیر ترانزیت نیز معمولاً شامل دستورالعمل هایی در مورد پیاده روی به، از و بین ایستگاه های حمل و نقل است. از آنجایی که یک مسیر ترانزیت معمولاً به شما نیاز دارد که با استفاده از بیش از یک حالت سفر سفر کنید، نحوه درخواست مسیر و برخی از بخش‌های پاسخ متفاوت است.

تفاوت مسیرهای ترانزیتی با سایر مسیرها

مسیرهای ترانزیت، که با تنظیم TravelMode TRANSIT درخواست می‌کنید، با مسیرهایی که از گزینه‌های TravelMode مختلف استفاده می‌کنند، متفاوت هستند. شما نمی توانید همه اشیا و گزینه های یکسان را درخواست کنید، و پاسخ در مقایسه با مسیرهای دیگر، فیلدهای متفاوتی را برمی گرداند.

در Routes API، مراحل به طور مداوم یک دستورالعمل ناوبری در تمام انواع سفر هستند. بنابراین هر دستورالعمل ناوبری یک مرحله است. پاسخ مسیر ترانزیت بسیار شبیه مسیرهایی با سایر حالت‌های سفر است، با چند تفاوت کلیدی:

درخواست تفاوت تفاوت پاسخ ها
شما نمی توانید نقاط بین راهی را تعیین کنید. شامل جزئیات حمل و نقل است.
نمی توان مسیرهای سازگار با محیط زیست را دریافت کرد شامل ابرداده برای هر حالت سفر است که حاوی خلاصه مراحل آن حالت سفر است، در «stepsOverview» (برای درخواست این ابرداده، از ماسک فیلد «routes.legs.stepsOverview» استفاده کنید).
نمی توان نحوه و یا اینکه داده های ترافیک را درج کرد
نمی توان ویژگی های مسیر را برای اجتناب تعیین کرد
فقط می تواند transitPreferences برای routingPreference مشخص کند. برای جزئیات، به TransitPreferences مراجعه کنید.

برای اطلاعات بیشتر در مورد پاسخ بازگشتی توسط Routes API، به بررسی پاسخ‌های مسیر حمل‌ونقل مراجعه کنید.

برای گرفتن یک مسیر ترانزیت

  1. مبدا و مقصد خود را تعیین کنید.

  2. حالت سفر را روی ترانزیت تنظیم کنید:

    travelMode: "TRANSIT"

  3. برای دریافت فیلدهای پاسخ مورد نظر، یک فیلد ماسک اضافه کنید. به درخواست فیلدهای مسیر حمل و نقل مورد نیاز مراجعه کنید.

  4. در صورت نیاز، پارامترهای اختیاری را تنظیم کنید. به تنظیم پارامترها برای یک مسیر حمل و نقل مراجعه کنید.

فیلدهای مسیر ترانزیت مورد نیاز خود را درخواست کنید

فیلدهای مسیر حمل و نقل مورد نیاز خود را با استفاده از ماسک های میدانی درخواست کنید. جدول زیر حاوی برخی از پاسخ‌های پیشنهادی برای یک مسیر ترانزیت و ماسک فیلد برای درخواست آنها است.

برای درخواست این اطلاعات از این ماسک فیلد استفاده کنید
تمام جزئیات مسیر 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

توجه: transitFare تنها در صورتی ارائه می شود که API بتواند اطلاعات کرایه حمل و نقل را برای همه مراحل تعیین کند.

متن محلی برای مدت زمان و فاصله routes.localizedValues

برای اطلاعات بیشتر درباره تنظیم ماسک‌های فیلد، به انتخاب فیلدهایی برای بازگشت مراجعه کنید.

تنظیم پارامترها برای یک مسیر حمل و نقل

در اینجا پارامترهای مربوطه برای مسیرهای ترانزیتی آمده است:

برای انجام این کار از این پارامتر استفاده کنید یادداشت ها
حالت حمل و نقل را انتخاب کنید travelMode: "TRANSIT" مورد نیاز. بیشتر بدانید .
زمان ورود یا خروج را تنظیم کنید "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

یا

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
اختیاری. شما می توانید زمان ورود یا زمان خروج را مشخص کنید. اگر هیچ کدام از زمان ها مشخص نشده باشد، departure_time به طور پیش فرض روی زمان اجرای فعلی ( now ) قرار می گیرد. شما می توانید زمان ورود و خروج را فقط در پنجره زمانی زیر تنظیم کنید و زمان اجرای فعلی ( now ) را به عنوان مرجع تعیین کنید:
  • تا و از جمله 7 روز قبل از now
  • حداکثر تا 100 روز پس از now
زمان به عنوان یک مهر زمانی در قالب RFC3339 UTC "Zulu" بیان می شود. بیشتر بدانید
شامل مسیرهای جایگزین "computeAlternativeRoutes": true اختیاری. روی true تنظیم کنید تا Routes API تا 3 مسیر اضافی را در صورت وجود محاسبه کند. بیشتر بدانید
تنظیمات برگزیده را برای نوع حمل و نقل مشخص کنید "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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}