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

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

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

أوجه الاختلاف بين مسارات النقل العام والمسارات الأخرى

تختلف مسارات النقل العام التي تطلبها من خلال ضبط 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 "زولو". مزيد من المعلومات

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

تضمين المسارات البديلة "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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}