פתרון בעיות

שגיאות

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

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

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

בעיות יישום

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