الحصول على مسار النقل العام

مطوّرو المنطقة الاقتصادية الأوروبية (EEA)

يوفّر مسار النقل العام تعليمات التنقّل باستخدام خيارات النقل العام المتاحة في المنطقة. قد تشمل خيارات النقل العام الحافلات وقطارات الأنفاق والقطارات وغيرها. يتضمّن مسار النقل العام أيضًا عادةً تعليمات حول المشي إلى محطات النقل العام ومنها وبينها. بما أنّ مسار النقل العام يتطلّب عادةً استخدام أكثر من وضع سفر واحد، يختلف طلب المسار وبعض أجزاء الردّ.

كيف تختلف مسارات النقل العام عن المسارات الأخرى؟

تختلف مسارات النقل العام، التي تطلبها من خلال ضبط 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 إلا إذا كان بإمكان واجهة برمجة التطبيقات تحديد معلومات أجرة النقل العام لجميع الخطوات.

النص المترجَم للمدة والمسافة routes.localizedValues

لمزيد من المعلومات عن ضبط أقنعة الحقول، يُرجى الاطّلاع على مقالة اختيار الحقول التي سيتم عرضها.

ضبط مَعلمات لمسار نقل عام

في ما يلي المَعلمات ذات الصلة بمسارات النقل العام:

لإجراء ذلك استخدِم هذه المَعلمة ملاحظات
اختيار وضع النقل العام travelMode: "TRANSIT" الحقل مطلوب. مزيد من المعلومات.
ضبط وقت الوصول أو المغادرة "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

أو

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
اختياريّ. يمكنك تحديد إما arrival_time أو departure_time. إذا لم يتم تحديد أي من الوقتَين، يتم ضبط departure_time تلقائيًا على وقت التنفيذ الحالي (now). لا يمكنك ضبط وقتَي الوصول والمغادرة إلا ضمن النافذة الزمنية التالية، مع استخدام وقت التنفيذ الحالي (now) كمرجع:
  • لغاية 7 أيام قبل now ضمناً
  • لغاية 100 يوم بعد now ضمناً
يتم التعبير عن الوقت كطابع زمني بالتنسيق RFC3339 UTC "Zulu". مزيد من المعلومات

ملاحظة: تتغيّر جداول النقل العام بشكل متكرّر، وقد تتغيّر رحلات النقل العام المتاحة بمرور الوقت، ولا يمكن ضمان تقديم نتائج متّسقة للتوقّعات التي يتم إجراؤها قبل فترة طويلة.

تضمين مسارات بديلة "computeAlternativeRoutes": true اختياريّ. اضبط هذه المَعلمة على "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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}