يوفّر مسار النقل العام تعليمات التنقّل باستخدام خيارات النقل العام المتاحة في المنطقة. قد تشمل خيارات النقل العام الحافلات ومترو الأنفاق والقطارات وغيرها. يتضمّن مسار النقل العام أيضًا عادةً تعليمات حول المشي من محطات النقل العام وإليها وبينها. بما أنّ مسار النقل العام يتطلّب عادةً التنقّل باستخدام أكثر من وسيلة نقل، تختلف طريقة طلب المسار وبعض أجزاء الردّ.
أوجه الاختلاف بين مسارات النقل العام والمسارات الأخرى
تختلف مسارات النقل العام التي تطلبها من خلال ضبط 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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }