פתרון בעיות

שגיאות

במקרה של שגיאה, יוחזר גוף התגובה לשגיאה בפורמט סטנדרטי וקוד הסטטוס של ה-HTTP יוגדר לסטטוס שגיאה.

התשובה מכילה אובייקט עם אובייקט error יחיד עם המפתחות הבאים:

  • code: זהה לסטטוס ה-HTTP של התשובה.
  • message: תיאור קצר של השגיאה.
  • status: קוד סטטוס שמציין את אופי השגיאה.

לדוגמה, שליחת הפרמטר placeId לא תקין תחזיר את השגיאה הבאה:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

השגיאות האפשריות הן:

קוד סטטוס מסר פתרון בעיות
400 INVALID_ARGUMENT המפתח שסיפקת לא חוקי. מפתח ה-API שלך לא חוקי או לא נכלל בבקשה. צריך להקפיד לכלול את המפתח במלואו ושהפעלת את ה-API למפתח הזה.
400 INVALID_ARGUMENT הפרמטר '\"path\" מכיל ערך לא חוקי: ☃ הבקשה שלך הכילה ארגומנטים לא חוקיים. הסיבות הנפוצות ביותר לשגיאה הזו הן:
  • יש בעיה בפרמטר path.
    עליך לוודא שיש לך לפחות 1 נקודות ופחות מ-100 נקודות. כל נקודה צריכה להיות זוג של מספרים שמופרדים בפסיקים, למשל: 48.409114,-123.369158. צריך להפריד בין הנקודות באמצעות קו אנכי: '|'.
  • הבקשה שלך כללה placeId לא חוקי.
  • הבקשה שלך כללה גם placeId וגם path. אפשר לציין רק אחד מהפרמטרים האלה לכל בקשה.

השגיאה הזו לא תוחזר אם תוחלף placeId בכביש שכבר לא קיים, או במקום שהוא לא כביש.

403 PERMISSION_DENIED בקשה לא רשומה נחסמה. צריך להירשם באמצעות Google Developers Console. הבקשה נדחתה בגלל אחת או יותר מהסיבות הבאות:
  • מפתח ה-API חסר או לא חוקי.
  • לא הופעל חיוב בחשבון.
  • חרגת ממכסת השימוש שהוגדרה באופן עצמאי.
  • אמצעי התשלום שסופק כבר לא בתוקף (לדוגמה, פג התוקף של כרטיס האשראי).

כדי להשתמש במוצרי הפלטפורמה של מפות Google יש להפעיל את החיוב בחשבון, וכל הבקשות חייבות לכלול מפתח API תקף. כדי לפתור את הבעיה, צריך לבצע את השלבים הבאים:

404 NOT_FOUND נדרש HTTPS לשירות הזה. יש לוודא שהבקשות נשלחות אל https://roads.googleapis.com/ ולא אל http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED הבקשה נחסמה כי הגעתם למגבלות על מספר הבקשות לפרויקט. חרגת ממגבלת הבקשות שהגדרת במסוף Google Cloud Platform. המגבלה הזו מוגדרת בדרך כלל כבקשות ליום, בקשות ל-100 שניות ובקשות ל-100 שניות לכל משתמש. מומלץ להגדיר את המגבלה הזו כדי למנוע מקבוצה אחת או קטנה של משתמשים למצות את המכסה היומית שלך, ועדיין לאפשר גישה סבירה לכל המשתמשים. כדי להגדיר את המגבלות האלה, ראו הגבלת השימוש ב-API.

השהיה מעריכית לפני ניסיון חוזר (exponential backoff)

כשבקשות נכשלות, חשוב לוודא שמנסים שוב לשלוח בקשות עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff). לדוגמה, אם בקשה נכשלת פעם אחת, מנסים שוב אחרי שנייה, אם היא נכשלת שוב, מנסים שוב אחרי שתי שניות, לאחר מכן ארבע שניות וכן הלאה. כך אפשר לוודא שבקשות לא תקינות או כשלים בהיקף רחב לא מצפים את השרתים של Google, כי לקוחות רבים מנסים לבצע ניסיון חוזר של בקשות במהירות רבה.

שאלות נפוצות בנושא פתרון בעיות

בעיות יישום

באיזו תדירות צריך לדגום את מיקום הרכב?
מומלץ להשתמש בכל 1-10 שניות כדי לקבל תוצאות באיכות גבוהה של הצמדה לכביש.
האם יש הגבלה על מספר הנקודות שאפשר לשלוח בכל שאילתה?
כן, שאילתה יכולה לקבל עד 100 נקודות.
באיזו רמת דיוק צריך להשתמש כדי לאחסן את קווי האורך והרוחב המוצמדים?
כדי להבטיח שנתיבים מצולמים יעברו בכבישים בכל רמות הזום, גם ברמת הזום המקסימלית, עליכם לאחסן את צמדי קווי האורך/רוחב המצולמים ב-7 מקומות עשרוניים עם דיוק.
האם אפשר להשתמש בקווים פוליגוניים מקודדים כדי להציג נתיבים מוצמדים?
קווים פוליגוניים מקודדים מוגדרים רק בדיוק של 5 ספרות אחרי הנקודה העשרונית, והתוצאה היא שגיאה של כ-2 מטרים. לכן, קווים פוליגוניים מקודדים לא מתאימים אם רוצים שהנתיבים המוצמדים יעברו בכביש ברמות זום גבוהות.

בעיות נפוצות

חלק מהנקודות לא מתועדות, או שיש פערים בנתיבים המהירים. איך אפשר לפתור את הבעיה?
  • אם דוגמים את הנקודות במרווחי זמן מוגבלים, חשוב לוודא שהנקודות נדגמות במרווחי זמן קצרים יותר (כל 1 עד 10 שניות). אם משתמשים במרווח זמן ארוך יותר (למשל 60 שניות), יכול להיות שהאלגוריתם של המהירות המוצמדת לא יוכל לקבוע את הדרכים שנסעו בהן בצורה מדויקת מספיק.
  • אם אתם לוחצים ידנית על מפה כדי ליצור נקודות, קל מאוד ליצור נתיבים עם מעט נקודות או נקודות מועטות שהאלגוריתם שלה לא מטפל טוב. אלגוריתם ההצמדה פועל בצורה הטובה ביותר לנקודות שקרובות זו לזו. אפשר לנסות את ההדגמה של הצמדה לכבישים או להשתמש בכלי לבדיקת כבישים כדי לבדוק את הנתיבים.
למה הנתיבים התקועים משוננים או מעטים מהכביש כשאני מגדילה את התצוגה?
  • האם אתם מקצרים את הדיוק של צמדי קווי האורך והרוחב המוצמדים לפני הצגתם? אחסון צמדי קו רוחב/קו אורך מצולמים בדיוק של פחות מ-7 ספרות אחרי הנקודה העשרונית, גורם לשגיאות דיוק כשהנתיב שהוצמד מוצג במפה.
  • האם השתמשת בקווים פוליגוניים מקודדים? קווים פוליגוניים מקודדים מקצרים צמדי קו רוחב/קו אורך ל-5 ספרות אחרי הנקודה העשרונית, וכתוצאה מכך נוצרת שגיאה של כמה מטרים, וכתוצאה מכך נוצרים קווים משוננים או מעטים מהכביש ברמות זום גבוהות.

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

מה יכול לגרום להצגה שגויה של מגבלת המהירות בכביש X?
מגבלות המהירות מגיעות מכמה מקורות שונים מבחינת הדיוק והכיסוי. אם מצאת דפוס התנהגותי, כמו מגבלות מהירות בסוג כביש מסוים או שגיאה עקבית באזור מסוים, עליך להודיע לנו על כך באמצעות השלבים הבאים:
  1. פתחו את מפות Google במחשב או את אפליקציית מפות Google ל-Android.
  2. פותחים את התפריט בצד ימין.
  3. לוחצים על שליחת משוב. הערה: יכול להיות שתתבקשו להתחבר לחשבון.
  4. בוחרים באפשרות עריכת המפה.
  5. בוחרים את קטע הדרך שרוצים לערוך.
  6. לוחצים על הבא.
  7. בשדה 'אחר', מציינים שמגבלת המהירות שגויה בכביש.
  8. בוחרים באפשרות שליחה.
אפשר גם לדווח כאן על בעיות אחרות (לדוגמה, אם לכביש יש שם שגוי, משורטט באופן שגוי, סגור או פרטי).
למה הדרך הריקה שלי חותכת פינות ולא הולכת בעקבות הכביש?
כדי לפתור את הבעיה, צריך לבדוק את הדברים הבאים:
  • מוודאים שהפרמטר interpolate מוגדר ל-true.
  • בודקים שנקודות הנתונים המקוריות נדגמות במרווחי זמן קרובים מספיק (כל 1 עד 10 שניות).
למה חוזרים הרבה קטעי דרך בנתיב המהיר ללא שינויים במגבלת המהירות?
כשהפרמטר interpolate מוגדר ל-true, שאילתת הצמדה לכביש מחזירה קו פוליגוני שעוקב אחרי הכביש שסביב פינות, עקומים וכיכרות. אם הכביש מתעקל, מוחזרים מספר מקטעי כביש גם אם מגבלת המהירות לא משתנה, כדי ליצור קו פוליגוני שקרוב מאוד לגיאומטריה של הכביש.