חישוב עמלות אגרה במסלול

כשמחשבים מסלול או מטריצת מסלולים, כדאי להביא בחשבון את עמלות האגרה במסלול. בערים נבחרות אפשר לחשב את עמלת האגרה המשוערת למסלול במטבע המתאים.

במאמר חישוב עמלות האגרה במטריצת מסלולים מפורט מידע על כבישי אגרה.

בחומר העזר של TollPass תוכלו למצוא רשימה של מיקומי כבישי האגרה הנתמכים.

איך אגרות מחושבות

Routes API מחשב את עמלת האגרה המשוערת, תוך התייחסות להנחות ולמחירי האגרה שזמינים לנהג או לרכב וגם לאמצעי התשלום הנוחים ביותר. אם אין מחיר אגרה במסלול מסוים, ב-Routes API אפשר לראות שיש כביש אגרה עם עמלה לא ידועה.

כדי לקבל אומדנים מדויקים של שיעורי האגרה, חשוב לכלול בבקשה את הפרטים הבאים:

  • סוג הפליטה של הרכב במסלול (VehicleEmissionType). אם לא תציינו את סוג הפליטה, תוחזר האגרה של כלי רכב שמתדלק בנזין.
  • כל כבישי האגרה מאפשרים העברת רכב עם הנהג או הנהגת באמצעות (TollPass). ה-API משתמש באישורי האגרה כדי לקבוע את עמלות האגרה בצורה מדויקת, ומחזיר מחירים במזומן אם אישורי האגרה בבקשה לא מקומיים למסלול.
  • אם צריך, מציינים הימנעות מכבישי אגרה. כדי להימנע מכבישי אגרה במידת האפשר, כדאי להוסיף את avoidTolls בתור RouteModifier.

חישוב כבישי אגרה באמצעות אישורי מעבר לכבישי אגרה

כדי לחשב את כבישי האגרה באמצעות מינוי לכבישי אגרה, עליכם לציין את כל אישורי האגרה כחלק מהבקשה. לאחר מכן ה-API מחזיר את מחירי הכרטיסים.

  • אם תציינו כרטיס אגרה לא תקף, המערכת תתעלם מהכרטיס.

  • אם מציינים מספר אישורי אגרה כמערך, ה-API ינסה לחשב את המחיר למסלול לכל כרטיס.

אופן הפעולה של אישורי הנסיעה בכבישי אגרה עשוי להשתנות בהתאם לאזור.

  • המחירים עשויים להיות נמוכים יותר עם מינויי אגרה: באזורים מסוימים, נהג או רכב עם מינוי לכביש אגרה משלמים באופן שונה מאלה שאין להם כרטיס אגרה. לדוגמה, אם יש לכם מינוי לכביש אגרה Good To Go! בסיאטל, וושינגטון (ארה"ב), תשלמו אגרה נמוכה יותר מאשר אם אין לכם אישור מעבר.

  • בכבישים מסוימים נדרש אישור מעבר לכבישי אגרה: באזורים מסוימים, כמו אינדונזיה, יש כבישים שמחייבים אישור מעבר לכבישי אגרה. אם לא מציינים אישור מעבר לנסיעה בכבישי אגרה, ה-API לא מחזיר את מחיר האגרה.

חישוב עמלות האגרה למסלול

בדוגמה הבאה נעשה שימוש בשיטה computeRoutes כדי להחזיר מידע על כבישי אגרה עם מחיר משוער כשמשתמשים בכרטיס אגרה. בדוגמה הזו:

  • כדי לאפשר את החישוב של פרטי האגרה, מגדירים את השדה 'מערך' extraComputations לערך TOLLS.

  • מציינים את סוג הרכב ואת הסוג של מינוי האגרה באמצעות השדה routeModifiers של הבקשה. מחיר האגרה שמוחזר מבוסס על המחיר של סוג הרכב וכרטיס הנסיעה שצוינו. אם מציינים יותר מכרטיס אחד, מוחזר המחיר הזול ביותר.

  • משתמשים במסכת השדות של התגובה כדי להגדיר את ה-method להחזרת פרטי האגרה בתשובה. בדוגמה הזו, הבקשה כללה את המאפיינים הבאים במסכה של שדה התגובה:

    • השדה 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
            }
          ]
        }
      }
    }
  ]
}