אפשר להשתמש בהשלמה אוטומטית של שאילתות (גרסה קודמת) כדי לספק חיזוי של שאילתות לחיפושים גיאוגרפיים מבוססי-טקסט, על ידי החזרת הצעות לשאילתות בזמן ההקלדה.
בקשות של השלמה אוטומטית של שאילתות (גרסה קודמת)
התכונה 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 בוחר להחזיר, ועל הסדר שבו התוצאות מוחזרות. הגיאוקודר מפרש קיצורים בצורה שונה בהתאם לשפה, כמו קיצורים של סוגי רחובות או מילים נרדפות שעשויות להיות תקפות בשפה אחת אבל לא בשפה אחרת. לדוגמה, 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
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | מערך<PlaceAutocompletePrediction> |
מכיל מערך של תחזיות. מידע נוסף זמין במאמר בנושא PlaceAutocompletePrediction. |
|
חובה | PlacesAutocompleteStatus |
התגובה מכילה את הסטטוס של הבקשה, ויכול להיות שהיא תכיל מידע על ניפוי באגים שיעזור לכם להבין למה הבקשה נכשלה. מידע נוסף זמין במאמר בנושא PlacesAutocompleteStatus. |
|
אופציונלי | מחרוזת |
אם השירות מחזיר קוד סטטוס ששונה מ- |
|
אופציונלי | Array<string> |
אם השירות מחזיר מידע נוסף על מפרט הבקשה, יכול להיות שיהיה שדה |
PlacesAutocompleteStatus
קודי סטטוס שמוחזרים על ידי השירות.
-
OKמציין שבקשת ה-API בוצעה בהצלחה. -
ZERO_RESULTS, שמציין שהחיפוש הצליח אבל לא הניב תוצאות. הבעיה הזו יכולה לקרות אם החיפוש העביר גבולות במיקום מרוחק. -
INVALID_REQUESTמציין שהבקשה ל-API הייתה פגומה, בדרך כלל בגלל הפרמטרinputהחסר. -
OVER_QUERY_LIMITשמציין אחת מהאפשרויות הבאות:- חרגת ממגבלות השאילתות לשנייה.
- החיוב לא הופעל בחשבון שלך.
- חרגתם מהקרדיט החודשי בסך 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 |
|
חובה | מחרוזת |
הטקסט של המונח. |