ריכזנו כאן כמה טיפים לפתרון בעיות נפוצות.
למה רדיוס הדיוק גדול מאוד?
אם התגובה של Geolocation מציגה ערך גבוה מאוד בשדה הדיוק, יכול להיות שהשירות מבצע מיקום גיאוגרפי על סמך כתובת ה-IP של הבקשה, במקום נקודות Wi-Fi או מגדלי תקשורת. תגובות כאלה יכולות להתרחש אם השירות לא מזהה מגדלי תקשורת או נקודות גישה.
כדי לוודא שהשירות לא הצליח לאתר את נקודות הגישה, מגדירים את considerIp כ-false בבקשה. אם התגובה היא 404, סימן שלא ניתן היה לאתר את המיקום הגיאוגרפי של האובייקטים wifiAccessPoints ו-cellTowers.
איך פותרים בעיות שקשורות לשגיאות בתשובות?
אם הבקשה שלכם תיצור שגיאה, המערכת תחזיר גוף תגובה לשגיאה בפורמט סטנדרטי ותגדיר את קוד הסטטוס של HTTP לסטטוס שגיאה.
תגובת השגיאה מכילה אובייקט עם אובייקט שגיאה אחד, שכולל את המפתחות הבאים:
code: זהה לסטטוס ה-HTTP של התגובה.-
message: תיאור קצר של השגיאה. -
errors: רשימה של השגיאות שקרו. כל שגיאה מכילה מזהה של סוג השגיאה (הסיבה) ותיאור קצר (ההודעה).
לדוגמה, אם שולחים JSON לא תקין, מוחזרת השגיאה הבאה:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error",
}
],
"code": 400,
"message": "Parse Error"
}
}
איסוף מידע על בדיקות ממכשירים
כדי לבצע בדיקות נוספות, אתם יכולים לאסוף מידע מהמכשיר באמצעות שירותי המיקום המובנים שכל פלטפורמה מציעה:
מכשירי Android: משתמשים ב-LocationManager או ב-API של ספק המיקום המשולב.
מכשירי iOS: משתמשים ב-framework של Core Location של אפל.
תיאורי השגיאות
ריכזנו כאן את השגיאות האפשריות שאתם עשויים להיתקל בהן, עם תיאורים.
| סיבה | דומיין | קוד סטטוס של HTTP | תיאור |
|---|---|---|---|
dailyLimitExceeded |
usageLimits |
403 | חרגתם מהמגבלה היומית. |
keyInvalid |
usageLimits |
400 | מפתח ה-API שלכם לא תקף ל-Geolocation API. חשוב לכלול את המפתח המלא, ולוודא שרכשתם את ה-API או שהפעלתם את החיוב ואת ה-API כדי לקבל את המכסה בחינם. |
userRateLimitExceeded |
usageLimits |
403 | חרגתם ממגבלת הבקשות שהגדרתם במסוף Google Cloud. המגבלה הזו מוגדרת בדרך כלל כמספר הבקשות ליום, מספר הבקשות ל-100 שניות ומספר הבקשות ל-100 שניות לכל משתמש. כדאי להגדיר את המגבלה כך שמשתמש יחיד או קבוצה קטנה של משתמשים לא ינצלו את כל המכסה היומית, ועדיין תהיה גישה סבירה לכל המשתמשים. כדי להגדיר את המגבלות האלה, קראו את המאמר הגבלת השימוש ב-API. |
notFound |
geolocation |
404 | הבקשה הייתה תקינה, אבל לא הוחזרו תוצאות. |
parseError |
global |
400 | גוף הבקשה הוא לא JSON תקין. בקטע גוף הבקשה מפורטים הפרטים של כל שדה. |