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

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

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

לרשימת המיקומים שבהם כבישי אגרה נתמכים, ראו TollPass.

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

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

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

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

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

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

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

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

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

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

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

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

בדוגמה הבאה נשתמש בשיטה 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
            }
          ]
        }
      }
    }
  ]
}