אפשר להשתמש בהשלמה אוטומטית של שאילתות (גרסה קודמת) כדי לספק חיזוי של שאילתות לחיפושים גיאוגרפיים מבוססי-טקסט, על ידי החזרת הצעות לשאילתות בזמן ההקלדה.
בקשות של השלמה אוטומטית של שאילתות (גרסה קודמת)
Query Autocomplete (מדור קודם) הוא חלק מ-Places API (מדור קודם) ומשתמש באותו מפתח API ובאותה מכסה כמו Places API (מדור קודם).
התכונה 'השלמה אוטומטית של שאילתות' (גרסה קודמת) מאפשרת להוסיף לאפליקציה חיזויים של שאילתות גיאוגרפיות תוך כדי הקלדה. במקום לחפש מיקום ספציפי, משתמש יכול להקליד חיפוש לפי קטגוריה, כמו 'פיצה ליד ניו יורק', והשירות יגיב עם רשימה של שאילתות מוצעות שתואמות למחרוזת. התכונה 'השלמה אוטומטית של שאילתות' (גרסה קודמת) יכולה להתאים מילים מלאות ומחרוזות משנה, ולכן אפליקציות יכולות לשלוח שאילתות בזמן שהמשתמש מקליד כדי לספק חיזויים בזמן אמת.
בקשה להשלמה אוטומטית של שאילתה (מדור קודם) היא כתובת URL מסוג HTTP מהצורה הבאה:
https://maps.googleapis.com/maps/api/place/queryautocomplete/output?parameters
כאשר output יכול להיות json או xml.
כדי ליזום בקשה להשלמה אוטומטית של שאילתה (גרסה קודמת), צריך להגדיר פרמטרים מסוימים.
כמו בכתובות URL רגילות, כל הפרמטרים מופרדים באמצעות התו אמפרסנד (&). בהמשך מפורטת רשימת הפרמטרים והערכים האפשריים שלהם.
פרמטרים נדרשים
-
קלט
מחרוזת הטקסט שבה יתבצע החיפוש. שירות ההשלמה האוטומטית למקומות יחזיר התאמות אפשריות על סמך המחרוזת הזו, ויסדר את התוצאות לפי הרלוונטיות שלהן.
פרמטרים אופציונליים
-
language
השפה שבה יוחזרו התוצאות.
- כאן אפשר לעיין ברשימת השפות הנתמכות. Google מעדכנת לעיתים קרובות את השפות הנתמכות, ולכן יכול להיות שהרשימה הזו לא מלאה.
-
אם לא מספקים את
language, ה-API מנסה להשתמש בשפה המועדפת שצוינה בכותרתAccept-Language. - הממשק API עושה כמיטב יכולתו כדי לספק כתובת רחוב שניתן לקרוא אותה גם על ידי המשתמש וגם על ידי תושבים מקומיים. כדי להשיג את המטרה הזו, הוא מחזיר כתובות רחוב בשפה המקומית, בתעתיק לכתב שהמשתמש יכול לקרוא אם צריך, בהתאם לשפה המועדפת. כל שאר הכתובות מוחזרות בשפה המועדפת. כל רכיבי הכתובת מוחזרים באותה שפה, שנבחרת מתוך הרכיב הראשון.
- אם שם לא זמין בשפה המועדפת, ה-API משתמש בהתאמה הקרובה ביותר.
- לשפה המועדפת יש השפעה קטנה על קבוצת התוצאות שממשק ה-API בוחר להחזיר, ועל הסדר שבו הן מוחזרות. כלי להמרת כתובות לקואורדינטות (geocoder) מפרש קיצורים בצורה שונה בהתאם לשפה, כמו קיצורים של סוגי רחובות או מילים נרדפות שעשויות להיות תקפות בשפה אחת אבל לא בשפה אחרת. לדוגמה, utca ו-tér הן מילים נרדפות למילה 'רחוב' בהונגרית.
-
location
הגדרת נקודה, כקואורדינטות
latitude,longitude, שסביבה יתבצע החיפוש. שירות המקומות משתמש במיקום כדי להטות את החיפוש ולהציג תוצאות באזור שמוגדר על ידיlocationו-radius. יכול להיות שיוצגו גם תוצאות מחוץ לאזור המוגדר.יכול להיות שהפרמטרlocationיוחלף אם התגqueryמכיל מיקום מפורש כמוMarket in Barcelona. שימוש במירכאות סביב השאילתה עשוי גם להשפיע על המשקל שניתן ל-locationול-radius. -
לקזז
המיקום במונח הקלט של התו האחרון שהשירות משתמש בו כדי להתאים תחזיות. לדוגמה, אם הקלט הוא
Googleוההיסט הוא 3, השירות יתאים ל-Goo. המחרוזת שנקבעה על ידי ההיסט מושווית רק למילה הראשונה במונח הקלט. לדוגמה, אם מונח הקלט הואGoogle abcוההיסט הוא 3, השירות ינסה להתאים אותו ל-Goo abc. אם לא מציינים היסט, השירות ישתמש בכל המונח. בדרך כלל, ההיסט צריך להיות מוגדר למיקום של סמן הטקסט. -
רדיוס
המרחק (במטרים) שבו יוחזרו תוצאות של מקומות. אפשר להטות את התוצאות לעיגול מסוים על ידי העברת הפרמטרים
locationו-radius. במקרה כזה, שירות המקומות יעדיף להציג תוצאות בתוך העיגול הזה, אבל יכול להיות שיוצגו גם תוצאות מחוץ לאזור המוגדר.הרדיוס יוגבל אוטומטית לערך מקסימלי בהתאם לסוג החיפוש ולפרמטרים אחרים.
- השלמה אוטומטית: 50,000 מטרים
-
חיפוש בקרבת מקום:
- עם
keywordאוname: 50,000 מטרים -
בלי
keywordאוname-
עד 50,000 מטרים, מותאם באופן דינמי על סמך צפיפות האזור, ללא קשר לפרמטר
rankby. -
אם משתמשים ב-
rankby=distance, הפרמטר radius לא יתקבל ותוצג השגיאהINVALID_REQUEST.
-
עד 50,000 מטרים, מותאם באופן דינמי על סמך צפיפות האזור, ללא קשר לפרמטר
- עם
- השלמה אוטומטית של שאילתות: 50,000 מטרים
- חיפוש טקסט: 50,000 מטר
דוגמאות להשלמה אוטומטית של שאילתות (גרסה קודמת)
כתובת URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'בקשה "פיצה ליד פריז", עם תוצאות בצרפתית:
כתובת URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &language=fr &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&language=fr&key=YOUR_API_KEY'הערה: תצטרכו להחליף את מפתח ה-API בדוגמאות האלה במפתח שלכם.
תגובה של השלמה אוטומטית של שאילתה (גרסה קודמת)
התשובות להשלמה אוטומטית של שאילתות (גרסה קודמת) מוחזרות בפורמט שמצוין בדגל output בנתיב של בקשת כתובת ה-URL. התוצאות שמוצגות בהמשך הן תוצאות של שאילתה עם הפרמטרים הבאים:
כתובת URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'JSON
{ "predictions": [ { "description": "pizza near Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris" }, { "offset": 18, "value": "France" }, ], }, { "description": "pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Pari Chowk" }, { "offset": 23, "value": "NRI City" }, { "offset": 33, "value": "Omega II" }, { "offset": 43, "value": "Noida" }, { "offset": 50, "value": "Uttar Pradesh" }, { "offset": 65, "value": "India" }, ], }, { "description": "pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 22 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "secondary_text_matched_substrings": [{ "length": 3, "offset": 16 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Disneyland Park" }, { "offset": 28, "value": "Disneyland Drive" }, { "offset": 46, "value": "Anaheim" }, { "offset": 55, "value": "CA" }, { "offset": 59, "value": "USA" }, ], }, { "description": "pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 36 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 30 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Cathédrale Notre-Dame de Paris" }, { "offset": 43, "value": "Parvis Notre-Dame - place Jean-Paul-II" }, { "offset": 83, "value": "Paris" }, { "offset": 90, "value": "France" }, ], }, { "description": "pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris Beauvais Airport" }, { "offset": 35, "value": "Route de l'Aéroport" }, { "offset": 56, "value": "Tillé" }, { "offset": 63, "value": "France" }, ], }, ], "status": "OK", }
XML
<AutocompletionResponse> <status>OK</status> <prediction> <description>pizza near Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris</value> <offset>11</offset> </term> <term> <value>France</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Pari Chowk</value> <offset>11</offset> </term> <term> <value>NRI City</value> <offset>23</offset> </term> <term> <value>Omega II</value> <offset>33</offset> </term> <term> <value>Noida</value> <offset>43</offset> </term> <term> <value>Uttar Pradesh</value> <offset>50</offset> </term> <term> <value>India</value> <offset>65</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Disneyland Park</value> <offset>11</offset> </term> <term> <value>Disneyland Drive</value> <offset>28</offset> </term> <term> <value>Anaheim</value> <offset>46</offset> </term> <term> <value>CA</value> <offset>55</offset> </term> <term> <value>USA</value> <offset>59</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>22</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>16</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Cathédrale Notre-Dame de Paris</value> <offset>11</offset> </term> <term> <value>Parvis Notre-Dame - place Jean-Paul-II</value> <offset>43</offset> </term> <term> <value>Paris</value> <offset>83</offset> </term> <term> <value>France</value> <offset>90</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>36</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>30</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris Beauvais Airport</value> <offset>11</offset> </term> <term> <value>Route de l'Aéroport</value> <offset>35</offset> </term> <term> <value>Tillé</value> <offset>56</offset> </term> <term> <value>France</value> <offset>63</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
כששירות המקומות מחזיר תוצאות JSON מחיפוש, הוא ממקם אותן במערך predictions. גם אם השירות לא מחזיר תוצאות (למשל אם location הוא מרחוק), הוא עדיין מחזיר מערך predictions ריק. תשובות XML מורכבות מאפס רכיבי <prediction> או יותר.
PlacesQueryAutocompleteResponse
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | Array<PlaceAutocompletePrediction> |
מכיל מערך של תחזיות. מידע נוסף זמין במאמר בנושא PlaceAutocompletePrediction. |
|
חובה | PlacesAutocompleteStatus |
התגובה מכילה את הסטטוס של הבקשה, ועשויה להכיל מידע על ניפוי באגים שיעזור לכם להבין למה הבקשה נכשלה. מידע נוסף זמין במאמר בנושא PlacesAutocompleteStatus. |
|
אופציונלי | מחרוזת |
אם השירות מחזיר קוד סטטוס ששונה מ- |
|
אופציונלי | Array<string> |
אם השירות מחזיר מידע נוסף על מפרט הבקשה, יכול להיות שיהיה שדה |
PlacesAutocompleteStatus
קודי סטטוס שמוחזרים על ידי השירות.
-
OKמציין שבקשת ה-API בוצעה בהצלחה. -
ZERO_RESULTSמציין שהחיפוש הצליח אבל לא הניב תוצאות. השגיאה הזו עשויה להתרחש אם החיפוש העביר גבולות במיקום מרוחק. -
INVALID_REQUESTמציין שהבקשה ל-API הייתה פגומה, בדרך כלל בגלל שהפרמטרinputחסר. -
OVER_QUERY_LIMITשמציין אחת מהאפשרויות הבאות:- חרגתם ממגבלות ה-QPS.
- החיוב לא הופעל בחשבון שלך.
- חרגתם מהקרדיט החודשי בסך 200 $או ממגבלת השימוש שהגדרתם בעצמכם.
- אמצעי התשלום שצוין לא תקף יותר (לדוגמה, תוקף כרטיס האשראי פג).
-
REQUEST_DENIEDשבה מצוין שהבקשה שלך נדחתה, בדרך כלל בגלל:- בבקשה חסר מפתח API.
- הפרמטר
keyלא תקין.
-
UNKNOWN_ERRORשמציינת שגיאה לא ידועה.
כששירות המקומות מחזיר תוצאות JSON מחיפוש, הוא מציב אותן במערך predictions. גם אם השירות לא מחזיר תוצאות (למשל אם location הוא מרוחק), הוא עדיין מחזיר מערך predictions ריק. תשובות XML מורכבות מאפס רכיבי <prediction> או יותר.
PlaceAutocompletePrediction
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | מחרוזת |
מכיל את השם של התוצאה שהוחזרה, בפורמט שקריא לבני אדם. בדרך כלל, השם הזה הוא שם העסק. |
|
חובה | מערך<PlaceAutocompleteMatchedSubstring> |
רשימה של מחרוזות משנה שמתארות את המיקום של המונח שהוזן בטקסט של תוצאת החיזוי, כדי שאפשר יהיה להדגיש את המונח אם רוצים. מידע נוסף זמין במאמר בנושא PlaceAutocompleteMatchedSubstring. |
|
חובה | PlaceAutocompleteStructuredFormat |
הפונקציה מחזירה טקסט מעוצב מראש שאפשר להציג בתוצאות ההשלמה האוטומטית. התוכן הזה נועד לקריאה כמו שהוא. אין לבצע ניתוח של הכתובת המעוצבת באופן פרוגרמטי. מידע נוסף זמין במאמר בנושא PlaceAutocompleteStructuredFormat. |
|
חובה | מערך<PlaceAutocompleteTerm> |
מכיל מערך של מונחים שמזהים כל חלק בתיאור שמוחזר (חלק בתיאור מסתיים בדרך כלל בפסיק). כל רשומה במערך כוללת שדה מידע נוסף זמין במאמר בנושא PlaceAutocompleteTerm. |
|
אופציונלי | מספר שלם |
המרחק בקו ישר במטרים מנקודת המוצא. השדה הזה מוחזר רק לבקשות שמתבצעות עם |
|
אופציונלי | מחרוזת |
מזהה טקסטואלי שמזהה באופן ייחודי מקום. כדי לאחזר מידע על המקום, מעבירים את המזהה הזה בשדה placeId של בקשה ל-Places API. מידע נוסף על מזהי מקומות זמין במאמר מזהי מקומות. |
|
אופציונלי | מחרוזת |
ראו place_id. |
|
אופציונלי | Array<string> |
מכיל מערך של סוגים שרלוונטיים למקום הזה. לדוגמה:
|
PlaceAutocompleteMatchedSubstring
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | number |
אורך מחרוזת המשנה התואמת בטקסט של תוצאת החיזוי. |
|
חובה | number |
מיקום ההתחלה של מחרוזת המשנה התואמת בטקסט של תוצאת החיזוי. |
PlaceAutocompleteStructuredFormat
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | מחרוזת |
מכיל את הטקסט העיקרי של התחזית, בדרך כלל שם המקום. |
|
חובה | מערך<PlaceAutocompleteMatchedSubstring> |
הוא מכיל מערך עם הערך מידע נוסף זמין במאמר בנושא PlaceAutocompleteMatchedSubstring. |
|
אופציונלי | מחרוזת |
מכיל את הטקסט המשני של חיזוי, בדרך כלל המיקום של המקום. |
|
אופציונלי | מערך<PlaceAutocompleteMatchedSubstring> |
הוא מכיל מערך עם הערך מידע נוסף זמין במאמר בנושא PlaceAutocompleteMatchedSubstring. |
PlaceAutocompleteTerm
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | number |
מגדיר את מיקום ההתחלה של המונח הזה בתיאור, במדידה של תווי Unicode |
|
חובה | מחרוזת |
הטקסט של המונח. |