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