פתרון בעיות

שגיאות

במקרה של שגיאה, יוחזר גוף תגובה של שגיאה בפורמט סטנדרטי וקוד המצב של ה-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, שאילתת הצמדה לכביש מחזירה קו פוליגוני שעוקב אחרי הפינות, העקומות והכיכרות. במקרה שהכביש מתעקל, מוחזרות מספר קטעי כביש גם אם מגבלת המהירות לא משתנה, כדי ליצור קו פוליגוני שנמצא קרוב מאוד לגיאומטריה של הכביש.