يوفّر مسار النقل العام تعليمات التنقّل باستخدام خيارات النقل العام المتاحة في المنطقة. قد تشمل خيارات النقل العام الحافلات ومترو الأنفاق والقطارات وغيرها. يتضمّن مسار النقل العام عادةً تعليمات حول المشي من وإلى محطات النقل العام وبينها. بما أنّ مسار النقل العام يتطلّب عادةً استخدام أكثر من وسيلة نقل واحدة، تختلف طريقة طلب المسار وبعض أجزاء الردّ.
أوجه الاختلاف بين مسارات النقل العام والمسارات الأخرى
تختلف مسارات النقل العام التي تطلبها من خلال ضبط travelMode على TRANSIT عن المسارات التي تستخدم خيارات travelMode مختلفة. لا يمكنك طلب جميع العناصر والخيارات نفسها، وتعرِض الاستجابة حقولاً مختلفة مقارنةً بالمسارات الأخرى.
في Routes API، تكون الخطوات دائمًا عبارة عن تعليمات تنقّل واحدة في جميع أنواع السفر. وبالتالي، كل تعليمات تنقّل هي خطوة. يتشابه الردّ الذي يتضمّن مسارًا للنقل العام إلى حد كبير مع المسارات التي تتضمّن وسائل نقل أخرى، مع بعض الاختلافات الرئيسية:
| الاختلافات في الطلبات | الاختلافات في الردود |
|---|---|
| لا يمكنك تحديد نقاط وسيطة على المسار. | يتضمّن تفاصيل النقل العام. |
| يتعذّر الحصول على مسارات صديقة للبيئة | يتضمّن بيانات وصفية لكل وسيلة نقل تحتوي على ملخّص للخطوات الخاصة بوسيلة النقل هذه، في `stepsOverview` (لطلب هذه البيانات الوصفية، استخدِم قناع الحقل `routes.legs.stepsOverview`). |
| لا يمكن تحديد كيفية تضمين بيانات الزيارات وما إذا كان يجب تضمينها | |
| لا يمكن تحديد ميزات المسار التي يجب تجنّبها | |
يمكنك تحديد transitPreferences فقط لـ routingPreference. لمعرفة التفاصيل، يُرجى الاطّلاع على
TransitPreferences. |
لمزيد من المعلومات حول الاستجابة التي تعرضها Routes 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" |
اختيارية: يمكنك تحديد وقت الوصول (arrival_time) أو وقت المغادرة (departure_time). إذا لم يتم تحديد أي من الوقتين، يتم ضبط departure_time تلقائيًا على وقت التنفيذ الحالي (now). يمكنك ضبط أوقات الوصول والمغادرة فقط ضمن الفترة الزمنية التالية، مع استخدام وقت التنفيذ الحالي (now) كمرجع:
ملاحظة: تتغيّر جداول النقل العام بشكل متكرّر، وقد تتغيّر رحلات النقل العام المتاحة بمرور الوقت، ولا يمكن ضمان تقديم نتائج متّسقة للتوقّعات قبل وقت طويل. |
| تضمين المسارات البديلة | "computeAlternativeRoutes": true |
اختيارية: اضبط القيمة على "صحيح" ليحتسب Compute Routes ما يصل إلى 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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }