ניתוב לכלי רכב גדולים

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

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

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

מגבלות

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

  • זמינות גיאוגרפית: תכנון מסלולים לרכבים גדולים זמין רק ב-48 המדינות הרציפות של ארה"ב.
  • המלצות לנהגים ובטיחות: הנהגים לא יכולים להסתמך רק על המסלולים שמוחזרים על ידי ה-API הזה כדי להבטיח בטיחות או חוקיות. אין ערובה לכך שהמסלולים יתאימו לכלי הרכב, ויכול להיות שהנהגים ייחשפו לסכנות כמו גשרים נמוכים או כבישים שאסור לכלי רכב גדולים לנסוע בהם.
  • מסלולים במאמץ מרבי: במקרים מסוימים, ה-API לא יכול למצוא מסלול שעומד באופן מלא בהגבלות הנסיעה. במקום זאת, המערכת מחזירה מסלול 'במאמץ הכי טוב' שעשוי עדיין לעבור באזורים מוגבלים.
  • תכונות שלא נתמכות: התכונות הבאות לא נתמכות בניווט לרכבים גדולים:
    • מחירי אגרה למשאיות
    • מגבלות מהירות
    • מסלול לחומרים רדיואקטיביים מסוכנים
  • חיוב: Google מחייבת את כל הבקשות ל-optimizeTours באופן אחיד, גם אם הבקשות מגדירות מאפיינים של מסלולים לרכבים גדולים.
  • מסלולים למרחקים ארוכים: מסלולים למרחקים ארוכים של משאיות, באורך של 500 ק"מ או יותר, דורשים יותר זמן חישוב ממסלולים קצרים יותר, ויכול להיות שהם יחזירו נתוני מסלול באיכות נמוכה יותר. כדי לשמור על איכות המסלול, כדאי להגביל את המרחקים בין המשלוחים, בין נקודות ההתחלה של כלי הרכב ובין נקודות הסיום של כלי הרכב. אם אתם צריכים מסלולים ארוכים, כדאי להאריך את המועדים האחרונים של הבקשות כדי להקטין את הסיכוי לשגיאות DEADLINE_EXCEEDED.

מאפיינים

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

בטבלה הבאה מפורטים המאפיינים ברמה העליונה להגדרת מסלולים לרכבים גדולים:

נכס סוג דרישה תיאור
travelMode מחרוזת חובה מציין את אמצעי התחבורה של הרכב. כדי להפעיל את המאפיינים של ניתוב כלי רכב גדולים, מגדירים את הערך הזה ל-TRUCK.
routeModifiers אובייקט חובה מכיל הגדרות ספציפיות למסלול, כולל vehicleInfo.

vehicleInfo

אובייקט vehicleInfo מכיל את המפרט הפיזי של הרכב. מגדירים את האובייקט הזה במאפיין routeModifiers. חובה לספק את אובייקט vehicleInfo אם מגדירים את travelMode כ-TRUCK.

בטבלה הבאה מפורטים המאפיינים שזמינים באובייקט vehicleInfo:

נכס סוג דרישה תיאור
totalHeightMm מספר שלם חובה מציין את הגובה הכולל של הרכב במילימטרים. הערך חייב להיות מספר שלם חיובי.
totalWidthMm מספר שלם חובה מציין את הרוחב הכולל של הרכב במילימטרים. הערך חייב להיות מספר שלם חיובי.
totalWeightKg מספר שלם חובה מציין את המשקל הכולל של הרכב בקילוגרמים. הערך חייב להיות מספר שלם חיובי.
totalLengthMm מספר שלם חובה מציין את האורך הכולל של הרכב במילימטרים. הערך חייב להיות מספר שלם חיובי.
trailerInfo מערך אופציונלי מכיל מערך של מפרטי טריילרים, כולל המאפיין lengthMm לציון האורך של כל טריילר במילימטרים.
totalAxleCount מספר שלם חובה מציין את מספר הסרנים הכולל ברכב. הערך הזה חייב להיות מספר שלם שגדול מ-2 או שווה לו.

דוגמאות

בקטע הזה יש שתי דוגמאות:

דוגמת קוד

בדוגמה הבאה מוצג מבנה המאפיינים שמשמשים לתכנון מסלול לרכב גדול:

"vehicles": [
  {
    "travelMode": "TRUCK",
    "routeModifiers": {
      "vehicleInfo": {
        "totalHeightMm": TOTAL_HEIGHT_MM,
        "totalWidthMm": TOTAL_WIDTH_MM,
        "totalWeightKg": TOTAL_WEIGHT_KG,
        "totalLengthMm": TOTAL_LENGTH_MM,
        "trailerInfo": [
          {
            "lengthMm": TRAILER_LENGTH_MM
          }
        ],
        "totalAxleCount": TOTAL_AXLE_COUNT
      }
    }
  }
]

דוגמה לבקשה

בדוגמה הבאה מוצג המבנה של בקשת optimizeTours בסיסית שמשלבת ניתוב של כלי רכב גדולים:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 40.953523,
              "longitude": -72.2277846
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 40.9546673,
              "longitude": -72.2580151
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "travelMode": "TRUCK",
        "routeModifiers": {
          "vehicleInfo": {
            "totalHeightMm": 4000,
            "totalWidthMm": 2500,
            "totalWeightKg": 9000,
            "totalLengthMm": 20000,
            "trailerInfo": [
              {
                "lengthMm": 15000
              }
            ],
            "totalAxleCount": 5
          }
        },
        "costPerKilometer": 1.0
      }
    ]
  }
}

המאמרים הבאים

  • הצגת הנחיות ניווט מפורטות: כאן מוסבר איך להעביר את routeToken שמוחזר עבור כל מעבר אל Navigation SDK ל-Android או ל-iOS.
  • יצירת קווים פוליגוניים של מעבר וטוקנים של מסלולים: במאמר קווים פוליגוניים של מעבר וטוקנים של מסלולים מוסבר איך לבקש טוקנים של מסלולים באמצעות populateTransitionPolylines.
  • מאמרי העזרה של ה-API: אפשר לעיין ברשימה המלאה של השדות בoptimizeTours reference.