גיאו-קידוד הוא תהליך של המרת כתובות (כמו כתובת רחוב) לקואורדינטות גיאוגרפיות (קו רוחב וקו אורך) שאפשר להשתמש בהן כדי למקם סמנים במפה או למקם את המפה. המסמך הזה מתמקד בהסבר על השיקולים שצריך לקחת בחשבון כשמבצעים המרת כתובות לקואורדינטות (geocoding) של כתובות. המאמר מתאר מתי הכי טוב להשתמש ב-Geocoding API ומתי כדאי להשתמש בשירות השלמה אוטומטית למקומות של Places API.
באופן כללי, כדאי להשתמש ב-Geocoding API כשמבצעים המרה של כתובות מלאות (לדוגמה, "48 Pirrama Rd, Pyrmont, NSW, Australia"). כדאי להשתמש בשירות ההשלמה האוטומטית למקומות של Places API כשממירים כתובות לא ברורות (לא מלאות) לקואורדינטות, או באפליקציות שרגישות לזמן אחזור, למשל כשמגיבים לקלט של משתמשים.
תרחישי שימוש והמלצות ל-API
| תרחישי שימוש והמלצות לשימוש ב-API | |
|---|---|
| להגיב בזמן אמת לקלט של משתמשים (כולל כתובות שהמשתמשים הזינו והן לא ברורות, חלקיות, בפורמט שגוי או עם שגיאות כתיב) | משתמשים בשירות השלמה אוטומטית למקומות של Places API כדי לקבל מזהה מקום, ואז ב-Geocoding API כדי לבצע גיאו-קידוד של מזהה המקום ל-latlng. |
| מערכות אוטומטיות שמבצעות עיבוד של כתובות דואר מלאות וחד-משמעיות (לדוגמה, '48 Pirrama Rd, Pyrmont, NSW, Australia') | משתמשים בשירות האינטרנט Geocoding API. |
| מערכות אוטומטיות שמעבדות שאילתות לא ברורות (לדוגמה, כתובות לא מלאות, כתובות עם פורמט לא תקין או כתובות עם שגיאות כתיב) | מומלץ להשתמש בשירות האינטרנט של Geocoding API במערכות אוטומטיות. עם זאת, אם במערכות אוטומטיות יש שיעור גבוה של שאילתות לא ברורות, חלקיות או עם שגיאות כתיב שמקורן בקלט של משתמשים, כדאי להוסיף ווידג'ט אינטראקטיבי של השלמה אוטומטית למקומות כדי לאפשר למשתמשים לבחור תוצאה וכך להימנע משגיאות כתיב בכתובת. |
| בעיות של זמן אחזור בשימוש ב-Directions API (גרסה קודמת) או ב-Distance Matrix API (גרסה קודמת), עם מקורות, יעדים או נקודות עצירה שצוינו כמחרוזות של כתובות | כדי לצמצם את זמן האחזור של המרת הכתובות לקואורדינטות, אפשר להשתמש בשירות ההשלמה האוטומטית למקומות של Places API כדי לקבל מזהי מקומות, ואז להעביר את מזהי המקומות אל Directions API (מדור קודם) או אל Distance Matrix API (מדור קודם). |
תגובה לקלט של משתמשים
יש שני שיקולים חשובים שמשפיעים על הבחירה של API באפליקציות שמגיבות בזמן אמת לקלט של המשתמש:
- הקלט של המשתמש בדרך כלל כולל הזנה של כתובת באופן הדרגתי (לדוגמה, 'רחוב ראשי 123'), ולכן היכולת לבצע המרת כתובות לקואורדינטות (geocoding) של כתובות לא שלמות או דו-משמעיות היא יתרון, כי היא מאפשרת למשתמש לקבל תוצאה מהר יותר.
- אפליקציות שמגיבות לקלט של משתמשים רגישות מאוד לזמן אחזור.
שני השיקולים האלה הופכים את שירות ההשלמה האוטומטית למקומות ב-Places API לאידיאלי לתרחיש השימוש של תגובה לקלט של משתמשים. ההשלמה האוטומטית למקומות נועדה להחזיר כמה אפשרויות ולאפשר למשתמש לבחור ביניהן. אפשר להגביל את Places API כך שיחפש רק קודי מיקום או כתובות, ולא יכלול עסקים. בנוסף, פונקציית החיפוש להשלמה אוטומטית עלולה להיות מוטה ולהחזיר תוצאות שספציפיות למיקום. Places API מחזיר מזהה מקום שאפשר להעביר אותו כמיקום מפורש לחלוטין לשירות האינטרנט של Geocoding API, שמחזיר בתמורה פרטים מלאים של הכתובת וממיר את הכתובת לקואורדינטות. אפשר גם להעביר מזהי מקומות לממשקי API אחרים, כמו Directions API (מדור ישן) ו-Distance Matrix API (מדור ישן) (ראו הפחתת זמן האחזור).
המרת כתובות לקואורדינטות ב-Geocoding API מתבצעת עם זמן אחזור ארוך יותר, והתוצאות פחות מדויקות אם השאילתות חלקיות או לא ברורות. לכן, לא מומלץ להשתמש ב-API הזה באפליקציות שצריכות להגיב בזמן אמת לקלט של משתמשים.
מידע נוסף על שירות ההשלמה האוטומטית למקומות ב-Android, ב-iOS, ב-JavaScript וב- Places API.
מערכות אוטומטיות
מערכות אוטומטיות שמעבדות כתובות דואר מלאות וחד-משמעיות: שאילתות חד-משמעיות כמו מחרוזות של כתובות דואר מלאות (לדוגמה, "48 Pirrama Rd, Pyrmont, NSW, Australia") מטופלות בצורה הטובה ביותר על ידי שירות האינטרנט של Geocoding API. ה-backend של המרת הכתובות לקואורדינטות מספק כיסוי רחב יותר של כתובות ברחבי העולם, והוא מותאם לתוצאות באיכות גבוהה עם שאילתות מלאות וחד-משמעיות מהסוג הזה.
מערכת אוטומטית שמעבדת שאילתות דו-משמעיות: שאילתות דו-משמעיות הן שאילתות שמכילות כתובות בפורמט לא תקין, כתובות לא מלאות או שגיאות איות. למערכות אוטומטיות, מומלץ להשתמש בשירות האינטרנט של Geocoding API. עם זאת, Geocoding API לא נועד להתמודד עם שאילתות לא ברורות, והוא עלול להפיק תוצאות פחות מדויקות או לא להפיק תוצאות בכלל בתגובה לשאילתות כאלה. אם המערכת האוטומטית שלכם מעבדת שיעור גבוה של שאילתות לא ברורות שמקורן בקלט של משתמשים, יכול להיות שכדאי לכם להוסיף לאפליקציה רכיב אינטראקטיבי באמצעות שירות ההשלמה האוטומטית למקומות ב-Places API, כי הוא נועד להחזיר כמה אפשרויות ולאפשר למשתמש לבחור ביניהן. Places API מחזיר מזהה מקום שאפשר להעביר בתור מיקום חד-משמעי לשירות האינטרנט Geocoding API. לאחר מכן, השירות מחזיר את פרטי הכתובת המלאים וממיר את הכתובת לקואורדינטות. מידע נוסף על שירות ההשלמה האוטומטית למקומות זמין ב-Android, ב-iOS, ב-JavaScript וב- Places API.
איך מקטינים את זמן האחזור של Directions API (מדורי קודם) ושל Distance Matrix API (מדורי קודם)
כשמציינים מחרוזות של כתובות כמקורות, כיעדים או כנקודות עצירה, Directions API (גרסה קודמת) ו- Distance Matrix API (גרסה קודמת) משתמשים באותו בק-אנד כמו Geocoding API כדי לבצע גיאו-קידוד של הכתובות האלה לפני חישוב המסלולים. הפעולה הזו מגדילה באופן משמעותי את זמן האחזור בהשוואה לציון אותם מיקומים כזוגות של קווי אורך ורוחב או כמזהי מקומות.
אם האפליקציה משתמשת ב-Directions API (מדור קודם) או ב-Distance Matrix API (מדור קודם) במצב שבו זמן האחזור חשוב, כמו תגובה לקלט של משתמשים, ונקודות המוצא, היעדים או נקודות הדרך צוינו בהתחלה כמחרוזות של כתובות, מומלץ לצמצם את זמן האחזור באמצעות שירות ההשלמה האוטומטית למקומות של Places API כדי להמיר מחרוזות של כתובות למזהי מקומות, ואז להעביר את מזהי המקומות ל-Directions API (מדור קודם) או ל-Distance Matrix API (מדור קודם). מידע נוסף על שירות ההשלמה האוטומטית למקומות זמין ב-Android, iOS, JavaScript וב- Places API. אפשר גם לעיין ב דוגמה ל-JavaScript של השלמה אוטומטית למקומות והוראות הגעה.
סיכום
בהתאם לתרחיש השימוש, אפשר להשתמש ב-Geocoding API לבד או לשלב אותו עם שירות ההשלמה האוטומטית של מקומות. כך תוכלו ליצור אפליקציות שמציעות תוצאות מדויקות של המרת כתובות לקואורדינטות (geocoding) וזמן אחזור נמוך.
ניהול שגיאות וניסיונות חוזרים
אם מתקבלות תגובות UNKNOWN_ERROR, הן נובעות משגיאות זמניות. הפתרון הכי טוב הוא לנסות שוב אחרי השהיה קצרה. מומלץ להשתמש ב
ספריות הלקוח של שירותי האינטרנט של הפלטפורמה של מפות Google, שכוללות לוגיקה של ניסיון חוזר ותומכות באימות של תוכנית הפרימיום של הפלטפורמה של מפות Google.
Java Client, Python Client, Go Client ו-Node.js Client לשירותי מפות Google הן ספריות לקוח עם תמיכה מהקהילה, שזמינות להורדה ולתרומות ב-GitHub. שם אפשר גם למצוא הוראות התקנה וקוד לדוגמה.
אם מקבלים קוד סטטוס OVER_QUERY_LIMIT בתגובה, סימן שחרגתם ממגבלות השימוש ב-API. מומלץ לנסות את
האסטרטגיות האלה לאופטימיזציה של השימוש.