احتساب رسوم العبور لمسار معيّن

عند احتساب مسار أو مصفوفة مسارات، قد تحتاج إلى أخذ أي رسوم عبور على المسار في الاعتبار. في مدن محدّدة، يمكنك احتساب الرسوم المقدَّرة للرسوم على مسار معيّن بالعملة المناسبة.

للحصول على الرسوم مقابل مسار معيّن، يُرجى الاطّلاع على مقالة احتساب رسوم الطرق مقابل مسار معيّن.

للحصول على قائمة المواقع الجغرافية التي تتوفّر فيها رسوم المرور، يُرجى الاطّلاع على مرجع TollPass.

كيفية احتساب الرسوم

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

للحصول على تقديرات دقيقة للرسوم، احرص على تضمين المعلومات التالية في طلبك:

  • نوع الانبعاثات للمركبة المستخدَمة في المسار (VehicleEmissionType). في حال عدم تقديم نوع الانبعاثات، يتم عرض تعرفة المركبة التي تعمل بالبنزين.
  • جميع بطاقات المرور الخاصة بالمركبة والسائق باستخدام (TollPass). تستخدِم واجهة برمجة التطبيقات بطاقات المرور لتحديد رسوم المرور الدقيقة، وتُعرِض أسعار الدفع نقدًا عندما تكون بطاقات المرور في الطلب غير محلية للمسار.
  • حدِّد ميزة تجنُّب رسوم العبور، إذا لزم الأمر. إذا كنت تريد تجنُّب الطرق التي تفرض رسومًا متى كان ذلك ممكنًا، أضِف avoidTolls كـ RouteModifier.

احتساب الرسوم باستخدام بطاقة رسوم العبور

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

  • إذا حدّدت بطاقة رسوم مرور غير صالحة، سيتم تجاهلها.

  • في حال تحديد عدة بطاقات رسوم مرور كمصفوفة، يحاول واجهة برمجة التطبيقات حساب سعر المسار لكل بطاقة.

قد تختلف طريقة عمل بطاقات المرور الخاصة بالرسوم حسب المنطقة.

  • قد تكون الأسعار أقل عند استخدام بطاقة رسوم العبور: في بعض المناطق، يدفع السائق أو المركبة التي لديها بطاقة رسوم عبور رسومًا مختلفة عن تلك التي لا تملك بطاقة. على سبيل المثال، إذا كان لديك تذكرة عبور رسوم Good To Go! في سياتل، واشنطن، الولايات المتحدة، ستدفع رسومًا أقل مما لو لم يكن لديك تذكرة.

  • قد تتطلّب بعض الطرق بطاقة مرور: في بعض المناطق، مثل إندونيسيا، هناك طرق تتطلّب بطاقة مرور. إذا لم تحدّد بطاقة رسوم مرور لمسار يتطلّب بطاقة رسوم مرور، لن تعرِض واجهة برمجة التطبيقات سعر رسوم المرور.

احتساب رسوم الطرق لمسار معيّن

يستخدِم المثال التالي الإجراء computeRoutes لعرض معلومات الرسوم مع سعر مقدَّر عند استخدام بطاقة رسوم. في هذا المثال، عليك إجراء ما يلي:

  • اضبط حقل صفيف extraComputations على TOLLS لتفعيل احتساب معلومات الرسوم.

  • حدِّد نوع المركبة ونوع بطاقة المرور باستخدام الحقل routeModifiers في الطلب. يستند سعر رسوم العبور المعروض إلى الأسعار المستخدَمة لنوع المركبة والمعرّف المُحدّدَين. في حال تحديد أكثر من بطاقة، يتم عرض السعر الأقل تكلفة.

  • استخدِم قناع حقل الردّ لضبط الطريقة التي يتم بها عرض معلومات الرسوم في الردّ. في هذا المثال، يحتوي الطلب على السمات التالية في قناع حقل الاستجابة:

    • حقل routes.travelAdvisory.tollInfo لإرجاع معلومات عن المسار بالكامل

    • routes.legs.travelAdvisory.tollInfo لعرض معلومات عن كل رحلة

طلب الحصول على معلومات عن الرسوم

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "extraComputations": ["TOLLS"],
  "routeModifiers":{
    "vehicleInfo":{
      "emissionType": "GASOLINE"
    },
    "tollPasses": [
      "US_MA_EZPASSMA",
      "US_WA_GOOD_TO_GO"
    ]
  }
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.travelAdvisory.tollInfo,routes.legs.travelAdvisory.tollInfo' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

استجابة تحتوي على معلومات الرسوم

يحتوي الردّ على معلومات عن الرسوم في عنصر TollInfo (REST) أو TollInfo (gRPC). في هذا المثال، يمكنك عرض معلومات الرسوم لكل من المسار بالكامل ولكل مرحلة من مراحله.

{
  "routes": [
    {
      "legs": [
        {
          "travelAdvisory": {
            "tollInfo": {
              "estimatedPrice": [
                {
                  "currencyCode": "USD",
                  "units": "4",
                  "nanos": 400000000
                }
              ]
            }
          }
        }
      ],
      "distanceMeters": 150338,
      "duration": "6650s",
      "travelAdvisory": {
        "tollInfo": {
          "estimatedPrice": [
            {
              "currencyCode": "USD",
              "units": "4",
              "nanos": 400000000
            }
          ]
        }
      }
    }
  ]
}