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

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

مدى اختلاف مسارات النقل العام عن المسارات الأخرى

تختلف مسارات النقل العام التي تطلبها من خلال ضبط travelMode (وضع النقل) TRANSIT من المسارات باستخدام خيارات وضع السفر المختلفة. لا يمكنك طلب جميع العناصر والخيارات نفسها، وسيتم عرض الرد من الحقول المختلفة، عند مقارنتها بالمسارات الأخرى.

في Routes API، تكون الخطوات بصفة منتظمة واحدة من تعليمات التنقّل عبر جميع أنواع السفر. لذا فإن كل تعليمات التنقل هي خطوة. نقل عام استجابة المسار مشابهة إلى حد كبير للمسارات ذات وسائل النقل الأخرى، مع بعض العوامل الاختلافات:

طلبات الاختلافات الاختلافات في الردود
لا يمكنك تحديد نقاط طريق متوسطة. تشمل تفاصيل النقل العام.
يتعذّر الحصول على مسارات صديقة للبيئة يتضمن بيانات وصفية لكل وسيلة سفر تحتوي على ملخص لخطوات وضع السفر هذا، في `stepsOverview` (لطلب هذه البيانات الوصفية، استخدم قناع الحقل "routes.legs.stepsOverview").
لا يمكن تحديد كيفية تضمين بيانات عدد الزيارات وما إذا كان سيتم تضمينها
لا يمكن تحديد ميزات المسارات التي يجب تجنبها
يمكن فقط تحديد transitPreferences من أجل routingPreference للحصول على التفاصيل، يمكنك مراجعة [TransitPreferences](reference/rest/v2/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"
اختياريّ. يمكنك تحديد access_time أو مغادرة_time. في حال حذف لم يتم تحديد أي وقت، فسيتم ضبط departure_time تلقائيًا على وقت التنفيذ الحالي (now). يمكنك تعيين وقت الوصول أوقات المغادرة خلال الفترة الزمنية التالية فقط، مع عرض الوقت وقت التنفيذ (now) كمرجع:
  • ما يصل إلى 7 أيام قبل now
  • بما يصل إلى 100 يوم بعد now
يتم التعبير عن الوقت كطابع زمني في RFC3339 UTC "Zulu" . مزيد من المعلومات
تضمين مسارات بديلة "computeAlternativeRoutes": 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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}