השלמה אוטומטית למקומות (דור קודם)

מפתחים באזור הכלכלי האירופי (EEA)

השלמה אוטומטית למקומות (גרסה קודמת) הוא שירות אינטרנט שמחזיר חיזויים של מקומות בתגובה לבקשת HTTP. הבקשה מציינת מחרוזת חיפוש טקסטואלית וגבולות גיאוגרפיים אופציונליים. אפשר להשתמש בשירות כדי לספק פונקציונליות של השלמה אוטומטית לחיפושים גיאוגרפיים מבוססי-טקסט, על ידי החזרת מקומות כמו עסקים, כתובות ונקודות עניין בזמן שהמשתמש מקליד.

בקשות להשלמה אוטומטית למקומות (מדור קודם)

‫השלמה אוטומטית למקומות (דור קודם) הוא חלק מ-Places API, והוא חולק מפתח API ומכסות עם Places API.

ההשלמה האוטומטית למקומות (מדור קודם) יכולה להתאים למילים מלאות ולמחרוזות משנה, ולפתור שמות של מקומות, כתובות וקודי Plus. לכן, אפליקציות יכולות לשלוח שאילתות בזמן שהמשתמש מקליד, כדי לספק חיזויים של מקומות בזמן אמת.

צריך להזין את קודי Plus Code בפורמט הנכון. כלומר, צריך להחליף את סימן הפלוס בתו המילוט %2B, ואת הרווחים בתו המילוט %20.

  • קוד גלובלי הוא קוד אזור בן ארבעה תווים, וקוד מקומי בן שישה תווים או יותר. לדוגמה, הקוד הגלובלי 849VCWC8+R9 עם תווי בריחה (escape) בכתובת URL הוא 849VCWC8%2BR9.
  • קוד מורכב הוא קוד מקומי באורך של שישה תווים (או יותר) עם מיקום מפורש. לדוגמה, הקוד המורכב CWC8+R9 Mountain View, CA, USA עם תווי בריחה (escape) בכתובת ה-URL הוא CWC8%2BR9%20Mountain%20View%20CA%20USA.

ההצעות שמוחזרות מיועדות להצגה למשתמש כדי לעזור לו לבחור את המקום הרצוי. כדי לקבל מידע נוסף על כל אחד מהמקומות שמוחזרים, אתם יכולים לשלוח בקשה של Place Details (דור קודם).

בקשה להשלמה אוטומטית למקומות (גרסה קודמת) היא כתובת URL מסוג HTTP בפורמט הבא:

https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters

כאשר output יכול להיות אחד מהערכים הבאים:

  • ‫json (מומלץ) מציין פלט ב-JavaScript Object Notation ‏ (JSON)
  • ‫xml מציין פלט בפורמט XML

כדי לשלוח בקשה להשלמה אוטומטית למקומות (גרסה קודמת), צריך להגדיר פרמטרים מסוימים. כמו בכל כתובת URL, כל הפרמטרים מופרדים באמצעות התו אמפרסנד (&). רשימת הפרמטרים והערכים האפשריים שלהם מפורטת בהמשך.

פרמטרים נדרשים

קלט

מחרוזת הטקסט שרוצים לחפש. שירות ההשלמה האוטומטית למקומות יחזיר התאמות אפשריות על סמך המחרוזת הזו, ויסדר את התוצאות לפי הרלוונטיות המשוערת שלהן.

פרמטרים אופציונליים

רכיבים

קבוצה של מקומות שאתם רוצים להגביל את התוצאות אליהם. אפשר להשתמש ברכיבים כדי לסנן לפי עד 5 מדינות. המדינות צריכות להיות מועברות כקוד מדינה בן שתי אותיות שתואם לתקן ISO 3166-1 Alpha-2. לדוגמה: components=country:fr יגביל את התוצאות למקומות בצרפת. כדי להעביר כמה מדינות, צריך להעביר כמה מסנני country:XX, עם התו קו אנכי | כמפריד. לדוגמה: components=country:us|country:pr|country:vi|country:gu|country:mp יגביל את התוצאות למקומות בארצות הברית ובטריטוריות המאורגנות הלא מאוגדות שלה.

הערה: אם אתם מקבלים תוצאות לא צפויות עם קוד מדינה, ודאו שאתם משתמשים בקוד שכולל את המדינות, הטריטוריות התלויות והאזורים המיוחדים בעלי העניין הגיאוגרפי שאתם מתכוונים אליהם. אפשר למצוא מידע על הקודים בויקיפדיה: רשימה של קודי מדינה לפי תקן ISO 3166 או בפלטפורמת הגלישה אונליין של ISO.

language

השפה שבה התוצאות יוחזרו.

  • כאן אפשר לעיין ברשימת השפות הנתמכות. ‫Google מעדכנת לעיתים קרובות את השפות הנתמכות, כך שהרשימה הזו לא בהכרח מלאה.
  • אם לא מציינים את language, ה-API מנסה להשתמש בשפה המועדפת שצוינה בכותרת Accept-Language.
  • ה-API מנסה לספק כתובת רחוב שקריאה גם למשתמש וגם למקומיים. כדי להשיג את המטרה הזו, הוא מחזיר כתובות רחוב בשפה המקומית, עם תעתיק לכתב שהמשתמש יכול לקרוא במידת הצורך, תוך התחשבות בשפה המועדפת. כל שאר הכתובות מוחזרות בשפה המועדפת. כל רכיבי הכתובת מוחזרים באותה שפה, שנבחרת לפי הרכיב הראשון.
  • אם השם לא זמין בשפה המועדפת, ה-API משתמש בהתאמה הקרובה ביותר.
  • השפה המועדפת משפיעה קצת על קבוצת התוצאות שה-API בוחר להחזיר ועל הסדר שבו הן מוחזרות. הכלי להמרת כתובות לקואורדינטות מפרש קיצורים באופן שונה בהתאם לשפה, למשל קיצורים של סוגי רחובות או מילים נרדפות שעשויות להיות תקפות בשפה אחת אבל לא בשפה אחרת. לדוגמה, utca ו-tér הן מילים נרדפות לרחוב בהונגרית.

location

הנקודה שסביבה מאחזרים את פרטי המקום. צריך לציין את זה בתור latitude,longitude. כשמציינים מיקום, צריך לציין גם את הפרמטר radius. אם לא מציינים את radius, המערכת מתעלמת מהפרמטר location.

כשמשתמשים ב-API של חיפוש טקסט, יכול להיות שהפרמטר `location` יוחלף אם הפרמטר `query` מכיל מיקום מפורש, כמו `Market in Barcelona`.

locationbias

העדפת תוצאות באזור מסוים, על ידי ציון רדיוס וקו רוחב/אורך, או שני זוגות של קווי רוחב/אורך שמייצגים את הנקודות של מלבן. אם הפרמטר הזה לא צוין, ה-API משתמש בהטיה לפי כתובת IP כברירת מחדל.

  • הטיית IP: הנחיה ל-API להשתמש בהטיית כתובת IP. מעבירים את המחרוזת ipbias (לאפשרות הזו אין פרמטרים נוספים).
  • מעגלי: מחרוזת שמציינת את הרדיוס במטרים, וגם את קו הרוחב וקו האורך במעלות עשרוניות. צריך להשתמש בפורמט הבא: circle:radius@lat,lng.
  • מלבני: מחרוזת שמציינת שני זוגות של קווי רוחב/אורך במעלות עשרוניות, שמייצגים את הנקודות הדרומית/מערבית והצפונית/מזרחית של מלבן. צריך להשתמש בפורמט הבא:rectangle:south,west|north,east. חשוב לזכור שערכי מזרח/מערב מוגבלים לטווח שבין 180- ל-180, וערכי צפון/דרום מוגבלים לטווח שבין 90- ל-90.

locationrestriction

הגבלת התוצאות לאזור מסוים, על ידי ציון רדיוס וקו רוחב/אורך, או שני זוגות של קווי רוחב/אורך שמייצגים את הנקודות של מלבן.

  • מעגלי: מחרוזת שמציינת את הרדיוס במטרים, וגם את קו הרוחב וקו האורך במעלות עשרוניות. צריך להשתמש בפורמט הבא: circle:radius@lat,lng.
  • מלבני: מחרוזת שמציינת שני זוגות של קווי רוחב/אורך במעלות עשרוניות, שמייצגים את הנקודות הדרומית/מערבית והצפונית/מזרחית של מלבן. צריך להשתמש בפורמט הבא:rectangle:south,west|north,east. חשוב לזכור שערכי מזרח/מערב מוגבלים לטווח שבין 180- ל-180, וערכי צפון/דרום מוגבלים לטווח שבין 90- ל-90.

היסט

המיקום של התו האחרון במונח הקלט שבו השירות משתמש כדי להתאים תחזיות. לדוגמה, אם הקלט הוא Google וההיסט הוא 3, השירות יתאים ל-Goo. המחרוזת שנקבעת לפי ההיסט מושווית למילה הראשונה במונח הקלט בלבד. לדוגמה, אם המונח שהוזן הוא Google abc וההיסט הוא 3, השירות ינסה להתאים ל-Goo abc. אם לא מציינים היסט, השירות ישתמש בכל המונח. בדרך כלל, צריך להגדיר את ההיסט למיקום של סמן הטקסט.

origin

נקודת המוצא שממנה מחושב המרחק בקו ישר אל היעד (מוחזרת בתור distance_meters). אם הערך הזה מושמט, המרחק בקו ישר לא יוחזר. צריך לציין את הערך בתור latitude,longitude.

רדיוס

מגדיר את המרחק (במטרים) שבו יוחזרו תוצאות של מקומות. אפשר להטות את התוצאות למעגל מסוים על ידי העברת הפרמטרים location ו-radius. כך שירות Places יעדיף להציג תוצאות בתוך המעגל הזה, אבל יכול להיות שעדיין יוצגו תוצאות מחוץ לאזור שהוגדר.

הרדיוס יוגבל באופן אוטומטי לערך מקסימלי בהתאם לסוג החיפוש ולפרמטרים אחרים.

  • השלמה אוטומטית: 50,000 מטרים
  • חיפוש בסביבה:
    • עם keyword או name: ‏50,000 מטרים
    • בלי keyword או name
      • עד 50,000 מטרים, מותאם באופן דינמי על סמך צפיפות האזור, ללא קשר לפרמטר rankby.
      • כשמשתמשים ב-rankby=distance, הפרמטר radius לא יתקבל ותתקבל השגיאה INVALID_REQUEST.
  • השלמה אוטומטית של שאילתות: 50,000 מטרים
  • חיפוש טקסט: 50,000 מטרים

אזור

קוד האזור, שמוגדר כערך ccTLD (דומיין ברמה העליונה) באורך שני תווים. רוב קודי ה-ccTLD זהים לקודי ISO 3166-1, עם כמה חריגים בולטים. לדוגמה, ה-ccTLD של בריטניה הוא uk‏ (‎.co.uk), וקוד ISO 3166-1 שלה הוא gb (מבחינה טכנית, עבור הישות "הממלכה המאוחדת של בריטניה הגדולה וצפון אירלנד").

sessiontoken

מחרוזת אקראית שמזהה סשן של השלמה אוטומטית לצורכי חיוב.

הסשן מתחיל כשהמשתמש מתחיל להקליד שאילתה, ומסתיים כשהוא בוחר מקום ומתבצעת קריאה ל-Place Details. כל סשן יכול לכלול כמה שאילתות, ואחריהן בחירה של מקום אחד. מפתחות ה-API שמשמשים לכל בקשה בסשן חייבים להיות שייכים לאותו פרויקט במסוף Google Cloud. אחרי שהסשן מסתיים, האסימון כבר לא תקף. האפליקציה צריכה ליצור אסימון חדש לכל סשן. אם הפרמטר sessiontoken לא מצוין, או אם משתמשים שוב בטוקן לסשן, הסשן מחויב כאילו לא סופק טוקן לסשן (כל בקשה מחויבת בנפרד).

אנחנו ממליצים לפעול לפי ההנחיות הבאות:

  • השתמשו בטוקנים לסשנים בכל הסשנים של ההשלמה האוטומטית.
  • יוצרים אסימון חדש לכל סשן. מומלץ להשתמש ב-UUID בגרסה 4.
  • חשוב לוודא שמפתחות ה-API שמשמשים לכל הבקשות של השלמה אוטומטית למקומות ושל פרטי מקומות בסשן שייכים לאותו פרויקט במסוף Cloud.
  • חשוב להעביר טוקן ייחודי לכל סשן חדש. אם משתמשים באותו טוקן ליותר מסשן אחד, כל בקשה תחויב בנפרד.

strictbounds

הפונקציה מחזירה רק את המקומות שנמצאים בדיוק באזור שמוגדר על ידי location ו-radius. זו הגבלה ולא הטיה, כלומר לא יוחזרו תוצאות מחוץ לאזור הזה גם אם הן תואמות לקלט של המשתמש.

סוגים

כדי להגביל את התוצאות של בקשה להשלמה אוטומטית למקומות לסוג מסוים, מעבירים את הפרמטר types. הפרמטר הזה מציין סוג או אוסף של סוגים, כמו שמפורט בסוגי מקומות. אם לא מציינים סוג, מוחזרים כל הסוגים.

למקום יכול להיות רק סוג ראשי אחד מהסוגים שמפורטים בטבלה 1 או בטבלה 2. לדוגמה, מלון שמוגש בו אוכל עשוי להופיע רק עם types=lodging ולא עם types=restaurant.

אפשר לציין את הערך של הפרמטר types באחת מהדרכים הבאות:

  • עד חמישה ערכים מטבלה 1 או מטבלה 2. אם יש כמה ערכים, צריך להפריד ביניהם באמצעות התו | (קו אנכי). לדוגמה:

    types=book_store|cafe

  • כל מסנן נתמך יחיד בטבלה 3. אי אפשר לערבב בין סוגי אוספים.

הבקשה תידחה ותוצג השגיאה INVALID_REQUEST אם:

  • צוינו יותר מחמישה סוגים.
  • יש סוגים לא מזוהים.
  • כל סוג מטבלה 1 או מטבלה 2 משולב עם אחד מהמסננים בטבלה 3.

דוגמאות להשלמה אוטומטית למקומות (גרסה קודמת)

בקשה לחיפוש עסקים שמכילים את המחרוזת "Amoeba" באזור שמרכזו בסן פרנסיסקו, קליפורניה:

כתובת URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696
      &radius=500
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'

אותה בקשה, אבל מוגבלת לתוצאות בטווח של 500 מטרים מ-Ashbury St & Haight St, San Francisco:

כתובת URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696&radius=500
      &strictbounds=true
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'

בקשה לכתובות שמכילות את המילה "Vict" עם תוצאות בצרפתית:

כתובת URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=geocode
      &language=fr
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'

בקשה לערים שמכילות את המילה "Vict" עם תוצאות בפורטוגזית ברזילאית:

כתובת URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=(cities)
      &language=pt_BR&key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'

שימו לב שצריך להחליף את מפתח ה-API בדוגמאות האלה במפתח שלכם.

תגובה של השלמה אוטומטית למקומות (מדור קודם)

התשובות של השלמה אוטומטית למקומות (הגרסה הקודמת) מוחזרות בפורמט שמצוין בדגל output בנתיב כתובת ה-URL של הבקשה. התוצאות הבאות הן דוגמה למה שיכול לחזור בשאילתה עם הפרמטרים הבאים:

כתובת URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Paris
      &types=geocode
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'

JSON

{
  "predictions":
    [
      {
        "description": "Paris, France",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "France",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "France" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TX, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TX, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TX" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TN, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TN, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TN" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, Brant, ON, Canada",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "Brant, ON, Canada",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "Brant" },
            { "offset": 14, "value": "ON" },
            { "offset": 18, "value": "Canada" },
          ],
        "types": ["neighborhood", "political", "geocode"],
      },
      {
        "description": "Paris, KY, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "KY, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "KY" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
    ],
  "status": "OK",
}

XML

    
<?xml version="1.0" encoding="UTF-8"?>
<AutocompletionResponse>
 <status>OK</status>
 <prediction>
  <description>Paris, France</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>France</value>
   <offset>7</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>France</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TX, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TX</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TX, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TN, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TN</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TN, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, Brant, ON, Canada</description>
  <type>neighborhood</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>Brant</value>
   <offset>7</offset>
  </term>
  <term>
   <value>ON</value>
   <offset>14</offset>
  </term>
  <term>
   <value>Canada</value>
   <offset>18</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>Brant, ON, Canada</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, KY, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>KY</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>KY, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
</AutocompletionResponse>

   

PlacesAutocompleteResponse

שדה חובה סוג תיאור
חובה מערך<PlaceAutocompletePrediction>

מכיל מערך של חיזויים.

מידע נוסף זמין במאמר בנושא PlaceAutocompletePrediction.

חובה PlacesAutocompleteStatus

מכיל את סטטוס הבקשה, ועשוי להכיל מידע על תוצאות ניפוי הבאגים שיעזור לכם להבין למה הבקשה נכשלה.

מידע נוסף זמין במאמר PlacesAutocompleteStatus.

אופציונלי מחרוזת

כשהשירות מחזיר קוד סטטוס שונה מ-OK<, יכול להיות שיהיה שדה error_message נוסף באובייקט התגובה. השדה הזה מכיל מידע מפורט יותר על הסיבות לקוד הסטטוס שניתן. השדה הזה לא תמיד מוחזר, והתוכן שלו עשוי להשתנות.

אופציונלי מערך<string>

כשהשירות מחזיר מידע נוסף על מפרט הבקשה, יכול להיות שיהיה שדה info_messages נוסף באובייקט התגובה. השדה הזה מוחזר רק בבקשות שהצליחו. יכול להיות שהשדה לא תמיד יוחזר, והתוכן שלו עשוי להשתנות.

האלמנטים place_id בתוצאות מעניינים במיוחד, כי אפשר להשתמש בהם כדי לבקש פרטים ספציפיים יותר על המקום באמצעות שאילתה נפרדת. בקשות ל-Place Details (מדור קודם)

תגובת XML מורכבת מרכיב <AutocompletionResponse> יחיד עם שני סוגים של רכיבי צאצא:

מומלץ להשתמש ב-json בתור דגל הפלט המועדף, אלא אם האפליקציה דורשת את xml מסיבה כלשהי. עיבוד עצי XML דורש תשומת לב, כדי להפנות לצמתים ולאלמנטים הנכונים. לקבלת עזרה בעיבוד XML, אפשר לעיין במאמר עיבוד XML באמצעות XPath.

PlacesAutocompleteStatus

קודי סטטוס שהוחזרו על ידי השירות.

  • ‫OK, שמציין שבקשת ה-API בוצעה בהצלחה.
  • ‫ZERO_RESULTS, שמציין שהחיפוש הצליח אבל לא הניב תוצאות. זה יכול לקרות אם החיפוש הועבר לגבולות במיקום מרוחק.
  • INVALID_REQUEST, שמציין שבקשת ה-API לא תקינה, בדרך כלל בגלל שחסר הפרמטר input.
  • OVER_QUERY_LIMIT שמציינים את אחד מהדברים הבאים:
    • חרגתם ממגבלות ה-QPS.
    • החיוב לא הופעל בחשבון שלכם.
    • חרגתם מהקרדיט החודשי בסך 200 $או ממכסת השימוש שהגדרתם בעצמכם.
    • אמצעי התשלום שסופק כבר לא תקף (לדוגמה, פג התוקף של כרטיס האשראי).
    בשאלות הנפוצות בנושא מפות מוסבר איך לפתור את השגיאה הזו.
  • REQUEST_DENIED, שמציין שהבקשה נדחתה, בדרך כלל מהסיבות הבאות:
    • בבקשה חסר מפתח API.
    • הפרמטר key לא תקין.
  • ‫UNKNOWN_ERROR מציין שגיאה לא ידועה.

כששירות Places מחזיר תוצאות JSON מחיפוש, הוא ממקם אותן במערך predictions. גם אם השירות לא מחזיר תוצאות (למשל, אם ה-location מרוחק), הוא עדיין מחזיר מערך predictions ריק. תשובות ב-XML מכילות אפס רכיבי <prediction> או יותר.

PlaceAutocompletePrediction

שדה חובה סוג תיאור
חובה מחרוזת

מכיל את השם הקריא לאנשים של התוצאה שהוחזרה. בתוצאות של establishment, בדרך כלל מדובר בשם העסק. התוכן הזה מיועד לקריאה כמו שהוא. אל תנתחו באופן פרוגרמטי את הכתובת המעוצבת.

חובה מערך<PlaceAutocompleteMatchedSubstring>

רשימה של מחרוזות משנה שמתארות את המיקום של המונח שהוזן בטקסט של תוצאת החיזוי, כדי שאפשר יהיה להדגיש את המונח אם הוא נבחר.

מידע נוסף זמין במאמר בנושא PlaceAutocompleteMatchedSubstring.

חובה PlaceAutocompleteStructuredFormat

מספק טקסט בפורמט מוגדר מראש שאפשר להציג בתוצאות ההשלמה האוטומטית. התוכן הזה מיועד לקריאה כמו שהוא. אל תנתחו באופן פרוגרמטי את הכתובת המעוצבת.

מידע נוסף זמין במאמר PlaceAutocompleteStructuredFormat.

חובה מערך<PlaceAutocompleteTerm>

מכיל מערך של מונחים שמזהים כל חלק בתיאור שמוחזר (בדרך כלל, חלק בתיאור מסתיים בפסיק). לכל רשומה במערך יש שדה value שמכיל את הטקסט של המונח, ושדה offset שמגדיר את מיקום ההתחלה של המונח בתיאור, שנמדד בתווי Unicode.

מידע נוסף זמין במאמר PlaceAutocompleteTerm.

אופציונלי מספר שלם

המרחק בקו ישר במטרים מנקודת המוצא. השדה הזה מוחזר רק לבקשות שבוצעו עם origin.

אופציונלי מחרוזת

מזהה טקסטואלי שמזהה מקום באופן ייחודי. כדי לאחזר מידע על המקום, צריך להעביר את המזהה הזה בשדה placeId של בקשת Places API. למידע נוסף על מזהי מקומות, קראו את הסקירה הכללית בנושא מזהי מקומות.

אופציונלי מחרוזת

ראו place_id.

אופציונלי מערך<string>

מכיל מערך של סוגים שרלוונטיים למקום הזה. לדוגמה: [ "political", "locality" ] או [ "establishment", "geocode", "beauty_salon" ]. המערך יכול להכיל כמה ערכים. מידע נוסף על סוגי מקומות

PlaceAutocompleteMatchedSubstring

שדה חובה סוג תיאור
חובה number

אורך מחרוזת המשנה התואמת בטקסט של תוצאת החיזוי.

חובה number

מיקום ההתחלה של מחרוזת המשנה התואמת בטקסט של תוצאת החיזוי.

PlaceAutocompleteStructuredFormat

שדה חובה סוג תיאור
חובה מחרוזת

מכיל את הטקסט הראשי של החיזוי, בדרך כלל שם המקום.

חובה מערך<PlaceAutocompleteMatchedSubstring>

מכיל מערך עם הערך offset ו-length. הם מתארים את המיקום של המונח שהוזן בטקסט של תוצאת החיזוי, כדי שאפשר יהיה להדגיש את המונח אם הוא נבחר.

מידע נוסף זמין במאמר בנושא PlaceAutocompleteMatchedSubstring.

אופציונלי מחרוזת

מכיל את הטקסט המשני של החיזוי, בדרך כלל המיקום של המקום.

אופציונלי מערך<PlaceAutocompleteMatchedSubstring>

מכיל מערך עם הערך offset ו-length. הם מתארים את המיקום של המונח שהוזן בטקסט של תוצאת החיזוי, כדי שאפשר יהיה להדגיש את המונח אם הוא נבחר.

מידע נוסף זמין במאמר בנושא PlaceAutocompleteMatchedSubstring.

PlaceAutocompleteTerm

שדה חובה סוג תיאור
חובה number

מגדיר את מיקום ההתחלה של המונח הזה בתיאור, נמדד בתווי Unicode

חובה מחרוזת

הטקסט של המונח.

אופטימיזציה של השלמה אוטומטית למקומות (גרסה קודמת)

בקטע הזה מתוארות שיטות מומלצות שיעזרו לכם להפיק את המקסימום משירות ההשלמה האוטומטית למקומות (הגרסה הקודמת).

הנה כמה הנחיות כלליות:

שיטות מומלצות לאופטימיזציה של עלויות

אופטימיזציה בסיסית של עלויות

כדי להוזיל את עלות השימוש בשירות "השלמה אוטומטית למקומות (דור קודם)", אתם יכולים להשתמש במסכות שדות בווידג'טים של "פרטי מקומות (דור קודם)" ו"השלמה אוטומטית למקומות (דור קודם)" כדי להחזיר רק את שדות הנתונים של "השלמה אוטומטית למקומות (דור קודם)" שאתם צריכים.

אופטימיזציה מתקדמת של עלויות

כדאי לשקול הטמעה פרוגרמטית של השלמה אוטומטית למקומות (מדור קודם) כדי לגשת אל מק"ט: השלמה אוטומטית – תמחור לכל בקשה ולבקש תוצאות של Geocoding API לגבי המקום שנבחר במקום Place Details (מדור קודם). תמחור לכל בקשה בשילוב עם Geocoding API משתלם יותר מתמחור לכל סשן (מבוסס-סשן) אם שני התנאים הבאים מתקיימים:

  • אם אתם צריכים רק את קווי האורך והרוחב או את הכתובת של המקום שהמשתמש בחר, Geocoding API מספק את המידע הזה בעלות נמוכה יותר מאשר קריאה ל-Place Details (דור קודם).
  • אם המשתמשים בוחרים הצעה להשלמת החיפוש מתוך ממוצע של ארבע בקשות להשלמה אוטומטית למקומות (דור קודם) או פחות, תמחור לפי בקשה יכול להיות משתלם יותר מתמחור לפי סשן.
כדי לבחור את ההטמעה של השלמה אוטומטית למקומות (דור קודם) שהכי משתלמת לאפליקציה שלכם, חפשו בטבלה הבאה את השורה שמתאימה לצרכים של האפליקציה.
מה צריך לכלול בבקשה מספר ממוצע של בקשות להשלמה אוטומטית למקומות (מדור קודם) לפני שהמשתמש בוחר חיזוי הטמעה מומלצת
פרטי מקום שאינם הכתובת והמיקום, כמו שם המקום, סטטוס העסק או שעות הפתיחה ללא הגבלה השלמה אוטומטית למקומות (דור קודם) מבוססת-סשן עם Place Details (דור קודם)
רק הכתובת וקו הרוחב/קו האורך של החיזוי שנבחר ארבעה או פחות השלמה אוטומטית למקומות (דור קודם) לכל בקשה עם Geocoding API
רק הכתובת וקו הרוחב/קו האורך של החיזוי שנבחר יותר מ-4 השלמה אוטומטית למקומות (דור קודם) מבוססת-סשן לאפליקציות של כתובות בלבד

יכול להיות ש-Geocoding API יהיה חסכוני יותר בשביל האפליקציה שלכם מאשר Place Details (מדור קודם), בהתאם לביצועים של השימוש ב-Place Autocomplete (מדור קודם). היעילות של השלמה אוטומטית למקומות (דור קודם) בכל אפליקציה משתנה בהתאם למה שהמשתמשים מזינים, למקום שבו משתמשים באפליקציה, ולשאלה אם הוטמעו שיטות מומלצות לאופטימיזציה של הביצועים.

כדי למצוא את מספר הבקשות הממוצע לטבלה, צריך לנתח כמה תווים משתמש מקליד בממוצע לפני שהוא בוחר חיזוי של השלמה אוטומטית למקומות (מדור קודם) באפליקציה.

השלמה אוטומטית למקומות (דור קודם) מבוססת-סשן עם פרטי מקומות (דור קודם)

שימוש בהשלמה אוטומטית למקומות (גרסה קודמת) מבוססת-סשן עם פרטי מקומות (גרסה קודמת).
מכיוון שהאפליקציה שלך דורשת את Place Details (מדור קודם), כמו שם המקום, הסטטוס של העסק או שעות הפעילות, ההטמעה של השלמה אוטומטית למקומות (מדור קודם) צריכה להשתמש בטוקן לסשן (באופן פרוגרמטי או מובנה בווידג'טים של JavaScript, Android, או iOS) לכל סשן בנוסף למק"טים רלוונטיים של Places Data, בהתאם לשדות נתונים של נתוני המקומות שביקשת.1

הטמעת ווידג'ט
ניהול הסשנים מובנה באופן אוטומטי בווידג'טים של JavaScript, Android, או iOS . החיוב כולל גם את הבקשות של "השלמה אוטומטית למקומות (דור קודם)" וגם את הבקשה של "פרטי מקומות (דור קודם)" בחיזוי שנבחר. חשוב לציין את הפרמטר fields כדי לוודא שאתם מבקשים רק את שדות הנתונים של ההשלמה האוטומטית למקומות (דור קודם) שאתם צריכים.

הטמעה פרוגרמטית
משתמשים בטוקן לסשן בבקשות של השלמה אוטומטית למקומות (מדור קודם). כששולחים בקשה לקבלת פרטי מקום (ממשק קודם) לגבי החיזוי שנבחר, צריך לכלול את הפרמטרים הבאים:

  1. מזהה המקום מהתשובה של ההשלמה האוטומטית למקומות (גרסה קודמת)
  2. הטוקן לסשן שמשמש בבקשה של השלמה אוטומטית למקומות (מדור קודם)
  3. הפרמטר fields שמציין את שדות הנתונים של ההשלמה האוטומטית למקומות (מדור קודם) שאתם צריכים

השלמה אוטומטית למקומות (דור קודם) לכל בקשה באמצעות Geocoding API

מטמיעים את השלמה אוטומטית למקומות (מדור קודם) באופן פרוגרמטי בלי טוקנים לסשן, וקוראים ל-Geocoding API בחיזוי המקום שנבחר.
‫Geocoding API מספק כתובות וקואורדינטות של קווי רוחב ואורך. ביצוע של ארבע בקשות השלמה אוטומטית למקומות – לכל בקשה וקריאה אחת ל-Geocoding API לגבי החיזוי של המקום שנבחר, עולה פחות מהעלות לכל סשן של השלמה אוטומטית למקומות (מדור קודם).1

כדאי להשתמש בשיטות מומלצות לשיפור הביצועים כדי לעזור למשתמשים לקבל את החיזוי שהם מחפשים עם עוד פחות תווים.

השלמה אוטומטית למקומות (דור קודם) מבוססת-סשן לאפליקציות של כתובות בלבד

שימוש בהשלמה אוטומטית למקומות (גרסה קודמת) מבוססת-סשן עם פרטי מקומות (גרסה קודמת).
מכיוון שהמספר הממוצע של בקשות שאתם צופים שתשלחו לפני שהמשתמש יבחר חיזוי של השלמה אוטומטית למקומות (מדור קודם) גבוה מהעלות של תמחור לכל סשן, ההטמעה של השלמה אוטומטית למקומות (מדור קודם) צריכה להשתמש בטוקן לסשן גם לבקשות של השלמה אוטומטית למקומות (מדור קודם) וגם לבקשה המשויכת של Place Details (מדור קודם) לכל סשן. 1

הטמעת ווידג'ט
ניהול הסשנים מובנה באופן אוטומטי בווידג'טים של JavaScript, Android, או iOS. החיוב כולל גם את הבקשות של "השלמה אוטומטית למקומות (דור קודם)" וגם את הבקשה של "פרטי מקום (דור קודם)" לחיזוי שנבחר. חשוב לציין את הפרמטר fields כדי לוודא שאתם מבקשים רק את השדות שאתם צריכים.

הטמעה פרוגרמטית
משתמשים בטוקן לסשן בבקשות של השלמה אוטומטית למקומות (מדור קודם). כששולחים בקשה לקבלת Place Details (גרסה קודמת) לגבי החיזוי שנבחר, צריך לכלול את הפרמטרים הבאים:

  1. מזהה המקום מהתשובה של ההשלמה האוטומטית למקומות (גרסה קודמת)
  2. הטוקן לסשן שמשמש בבקשה של השלמה אוטומטית למקומות (מדור קודם)
  3. הפרמטר fields שמציין שדות של נתונים בסיסיים כמו כתובת וגיאומטריה

כדאי לשקול לעכב את הבקשות להשלמה אוטומטית למקומות (מדור קודם)
אפשר להשתמש באסטרטגיות כמו עיכוב של בקשה להשלמה אוטומטית למקומות (מדור קודם) עד שהמשתמש מקליד את שלושת או ארבעת התווים הראשונים, כדי שהאפליקציה תשלח פחות בקשות. לדוגמה, אם שולחים בקשות של השלמה אוטומטית למקומות (דור קודם) לכל תו אחרי שהמשתמש הקליד את התו השלישי, והמשתמש מקליד שבעה תווים ואז בוחר הצעה שעבורה אתם שולחים בקשה אחת של Geocoding API, העלות הכוללת תהיה עבור 4 בקשות של השלמה אוטומטית למקומות (דור קודם) + Geocoding.1

אם עיכוב הבקשות יכול להפחית את הממוצע של הבקשות הפרוגרמטיות לפחות מ-4, אתם יכולים לפעול לפי ההנחיות להטמעה של השלמה אוטומטית למקומות (מדור קודם) עם Geocoding API. חשוב לזכור שעיכוב בקשות יכול להיתפס כזמן אחזור על ידי המשתמש, שאולי מצפה לראות חיזויים בכל הקשה חדשה.

כדאי להשתמש בשיטות מומלצות לשיפור הביצועים כדי לעזור למשתמשים לקבל את החיזוי שהם מחפשים בפחות תווים.


  1. למידע על העלויות, קראו את המחירונים של Google Maps Platform.

שיטות מומלצות לשיפור הביצועים

בהנחיות הבאות מוסבר איך לשפר את הביצועים של השלמה אוטומטית למקומות (דור קודם):

  • מוסיפים להטמעה של Place Autocomplete (מדור קודם) הגבלות לפי מדינה, הטיה לפי מיקום והעדפת שפה (להטמעות פרוגרמטיות). אין צורך בהעדפת שפה בווידג'טים, כי הם בוחרים את העדפות השפה מהדפדפן או מהמכשיר הנייד של המשתמש.
  • אם השירות "השלמה אוטומטית למקומות (דור קודם)" מלווה במפה, אתם יכולים להטות את המיקום לפי אזור התצוגה של המפה.
  • במקרים שבהם המשתמש לא בוחר באחת מההצעות של ההשלמה האוטומטית למקומות (מדור קודם), בדרך כלל כי אף אחת מההצעות האלה היא לא הכתובת הרצויה, אתם יכולים להשתמש שוב בקלט המקורי של המשתמש כדי לנסות לקבל תוצאות רלוונטיות יותר:
    • אם אתם מצפים שהמשתמש יזין רק פרטי כתובת, השתמשו שוב בקלט המקורי של המשתמש בקריאה ל-Geocoding API.
    • אם אתם מצפים שהמשתמש יזין שאילתות לגבי מקום ספציפי לפי שם או כתובת, השתמשו בבקשה ל-Place Details (מדור קודם). אם התוצאות צפויות רק באזור ספציפי, השתמשו בהטיית מיקום.
    תרחישים נוספים שבהם מומלץ להשתמש ב-Geocoding API:
    • משתמשים שמזינים כתובות של יחידות משנה, כמו כתובות של יחידות או דירות ספציפיות בתוך בניין. לדוגמה, הכתובת בצ'כיה "Stroupežnického 3191/17, Praha" מניבה חיזוי חלקי בהשלמה אוטומטית למקומות (מדור קודם).
    • משתמשים שמזינים כתובות עם קידומות של קטעי כביש, כמו "‎23-30 29th St, Queens" בניו יורק או "‎47-380 Kamehameha Hwy, Kaneohe" באי קאואיי שבהוואי.

הטיית מיקום

כדי להטות את התוצאות לאזור מסוים, מעבירים פרמטר location ופרמטר radius. ההגדרה הזו מנחה את ההשלמה האוטומטית למקומות (מדור קודם) להעדיף הצגת תוצאות בתוך האזור שהוגדר. יכול להיות שיוצגו תוצאות מחוץ לאזור שהוגדר. אפשר להשתמש בפרמטר includedRegionCodes כדי לסנן את התוצאות כך שיוצגו רק המקומות במדינה מסוימת.

הגבלת מיקום

כדי להגביל את התוצאות לאזור מסוים, צריך להעביר פרמטר locationRestriction.

אפשר גם להגביל את התוצאות לאזור שמוגדר על ידי location ופרמטר radius, על ידי הוספת הפרמטר strictbounds. ההגדרה הזו מנחה את ההשלמה האוטומטית למקומות (מדור קודם) להחזיר רק תוצאות באזור הזה.