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

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

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

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

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

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
            }
          ]
        }
      }
    }
  ]
}