שגיאות
במקרה של שגיאה, יוחזר גוף התגובה לשגיאה בפורמט סטנדרטי וקוד הסטטוס של ה-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\" מכיל ערך לא חוקי: ☃ | הבקשה שלך הכילה ארגומנטים לא חוקיים. הסיבות הנפוצות ביותר לשגיאה הזו הן:
השגיאה הזו לא תוחזר אם תוחלף
|
403 | PERMISSION_DENIED |
בקשה לא רשומה נחסמה. צריך להירשם באמצעות Google Developers Console. | הבקשה נדחתה בגלל אחת או יותר מהסיבות הבאות:
כדי להשתמש במוצרי הפלטפורמה של מפות 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?
- מגבלות המהירות מגיעות מכמה מקורות שונים מבחינת הדיוק והכיסוי.
אם מצאת דפוס התנהגותי, כמו מגבלות מהירות בסוג כביש מסוים או שגיאה עקבית באזור מסוים, עליך להודיע לנו על כך באמצעות השלבים הבאים:
- פתחו את מפות Google במחשב או את אפליקציית מפות Google ל-Android.
- פותחים את התפריט בצד ימין.
- לוחצים על שליחת משוב. הערה: יכול להיות שתתבקשו להתחבר לחשבון.
- בוחרים באפשרות עריכת המפה.
- בוחרים את קטע הדרך שרוצים לערוך.
- לוחצים על הבא.
- בשדה 'אחר', מציינים שמגבלת המהירות שגויה בכביש.
- בוחרים באפשרות שליחה.
- למה הדרך הריקה שלי חותכת פינות ולא הולכת בעקבות הכביש?
-
כדי לפתור את הבעיה, צריך לבדוק את הדברים הבאים:
- מוודאים שהפרמטר
interpolate
מוגדר ל-true
. - בודקים שנקודות הנתונים המקוריות נדגמות במרווחי זמן קרובים מספיק (כל 1 עד 10 שניות).
- מוודאים שהפרמטר
- למה חוזרים הרבה קטעי דרך בנתיב המהיר ללא שינויים במגבלת המהירות?
- כשהפרמטר
interpolate
מוגדר ל-true
, שאילתת הצמדה לכביש מחזירה קו פוליגוני שעוקב אחרי הכביש שסביב פינות, עקומים וכיכרות. אם הכביש מתעקל, מוחזרים מספר מקטעי כביש גם אם מגבלת המהירות לא משתנה, כדי ליצור קו פוליגוני שקרוב מאוד לגיאומטריה של הכביש.