Otomatik Tamamla (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

Otomatik tamamlama (Yeni) hizmeti, tahminleri ve sorgu tahminlerini görebilirsiniz. İstekte bir metin belirtin arama dizesini ve arama alanını kontrol eden coğrafi sınırları içerir.

Otomatik Tamamlama (Yeni) hizmeti, giriş alt dizelerini kullanarak yer adlarını, adresleri ve artı kodları kullanabilirsiniz. Uygulamalar bu nedenle o anda yer ve sorgu tahminleri sağlamak için kullanıcı girişi sorgularını kullanın.

Autocomplete (Yeni) API'den gelen yanıt iki tür içerebilir bir dizi tahmin:

  • Yer tahminleri: İşletmeler, adresler ve farklı yerler ilgi alanı (belirtilen giriş metni dizesine ve arama alanına göre) Yer tahminleri varsayılan olarak döndürülür.
  • Sorgu tahminleri: Giriş metni dizesiyle eşleşen sorgu dizeleri ve alanı seçin. Sorgu tahminleri varsayılan olarak döndürülmez. Şunu kullanın: includeQueryPredictions istek parametresinden tıklayın.

Örneğin, kısmi kullanıcı girişi içeren bir dize kullanarak API'yi çağırırsınız. Arama alanı San Francisco, Kaliforniya ile sınırlandırılmıştır. Yanıtta, arama dizesi ve arama alanıyla eşleşen yer tahminlerinin listesi (örneğin, ve yerle ilgili bilgilerle birlikte "Sicilian Pizza Kitchen" adlı restoran.

Döndürülen yer tahminleri, kullanıcıya yardımcı olmak amacıyla sunulacak şekilde tasarlanmıştır seçmelerine yardımcı oluyor. Bu URL'yi Yer Ayrıntıları (Yeni) için istekte bulunabilirsiniz.

Yanıt, arama dizesi ve arama alanı gibi Pasta" yazın. Bu bölümdeki her sorgu tahmini yanıt, önerilen metin arama dizesi içeren text alanını içeriyor. Onu kullan dizesi için Metin Arama (Yeni) kullanabilirsiniz.

API Gezgini, API'yi ve sunulan API'yi tanıyabilmeniz için canlı isteklerde bulunmanızı sağlar. API seçenekleri:

Deneyin.

Otomatik tamamlama (Yeni) istekleri

Otomatik Tamamlama (Yeni) isteği, şu formu kullanın:

https://places.googleapis.com/v1/places:autocomplete

JSON isteği gövdesindeki veya başlıklardaki tüm parametreleri POST isteğinin bir parçası olarak iletin. Örneğin:

curl -X POST -d '{
  "input": "pizza",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Yanıt hakkında

Otomatik Tamamlama (Yeni), yanıt olarak bir JSON nesnesi döndürür. Yanıtta:

  • suggestions dizisi, tahmin edilen tüm yerleri ve sorguları sırasıyla içerir. bir kitle oluşturabilirsiniz. Her yer bir placePrediction alanı ve her sorgu temsil edilir queryPrediction alanına göre.
  • placePrediction alanı, tek bir öğe hakkında ayrıntılı bilgi içerir yer tahmini (yer kimliği ve metin açıklaması dahil) içerir.
  • queryPrediction alanı, tek bir öğe hakkında ayrıntılı bilgi içerir sorgu tahmininde bulunun.
ziyaret edin.

JSON nesnesinin tamamı aşağıdaki biçimdedir:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }]
        },
      ...
    },
    {
      "queryPrediction": {
        "text": {
          "text": "Amoeba Music",
          "matches": [
            {
              "endOffset": 6
            }]
        },
        ...
    }
  ...]
}

Gerekli parametreler

  • giriş

    Arama yapılacak metin dizesi. Tam kelimeleri ve alt dizeleri belirtin, Yer adları, adresler ve artı kodları. Otomatik tamamlama (Yeni) hizmeti bu dizeye göre aday eşleşmeleri döndürür ve sonuçları şuna göre sıralar: alaka düzeyi için kritik önem taşır.

İsteğe bağlı parametreler

  • includedPrimaryTypes

    Bir yerin, şurada listelenen türlerden yalnızca tek bir birincil türü olabilir: Tablo A veya B Tablosu. Örneğin, birincil tür, "mexican_restaurant" veya "steak_house" olabilir.

    API, varsayılan olarak input parametresine göre tüm yerleri döndürür. yerle ilişkili birincil tür değeridir. Sonuçları belirli bir değere sahip olacak şekilde kısıtla birincil tür veya birincil türler için includedPrimaryTypes parametresini iletin.

    Tablo A'dan en fazla beş tür değeri belirtmek için bu parametreyi kullanın veya Tablo B. Bir yer, yanıta dahil edilecek, belirtilen birincil tür değerlerinden biriyle eşleşmelidir.

    Bu parametre, bunun yerine (regions) veya (cities) özelliklerinden birini de içerebilir. Mahalleler ve posta kodları gibi alanlar veya bölümler için (regions) türü toplama filtreleri. Google'ın şehir olarak tanımladığı yerler için (cities) türündeki toplama filtreleri.

    Aşağıdaki durumlarda istek INVALID_REQUEST hatasıyla reddedilir:

    • Beşten fazla tür belirtilmiş.
    • (cities) veya (regions) öğesine ek olarak tüm türler belirtilir.
    • Tanınmayan türler belirtilmiş.
    ziyaret edin.
  • includeQueryPredictions

    true ise yanıt, hem yer hem de sorgu tahminlerini içerir. Varsayılan değeri false. Yanıt, yalnızca yer tahminlerini içerir.

  • includedRegionCodes

    En fazla 15 karakterlik bir dizi olarak belirtilen, belirtilen bölgeler listesindeki sonuçları dahil et ccTLD ("üst düzey alan") iki karakterli değerler sunmalıdır. Atlanırsa yanıta herhangi bir kısıtlama uygulanmaz. Örneğin, Almanya ve Fransa ile sınırlandırmak için:

        "includedRegionCodes": ["de", "fr"]

    Hem locationRestriction hem de includedRegionCodes öğesini belirtirseniz sonuçlar, iki ayarın kesişim alanında bulunur.

  • inputOffset

    input içindeki imleç konumunu gösteren sıfır tabanlı Unicode karakter farkı. İmleç konumu, hangi tahminlerin döndürüleceğini etkileyebilir. Boşsa varsayılan olarak input uzunluk.

  • languageCode

    Sonuçların döndürüleceği tercih edilen dil. Sonuçlar karışık dillerde olabilir input içinde kullanılan dil, languageCode veya iade edilen yerin yerel dili languageCode olarak ayarla.

    • Şunu kullanmanız gerekir: IETF BCP-47 dil kodları kullanın.
    • languageCode sağlanmazsa API, Accept-Language üstbilgisi. İkisi de belirtilmezse varsayılan olarak en Geçersiz bir dil kodu belirtirseniz API, INVALID_ARGUMENT hata.
    • Tercih edilen dilin, arama sonuçlarında görünen döndürmeyi seçtiği sıra ve bunların döndürülme sırasına göre belirlenir. Bu durum, API'nin yazım hatalarını düzeltme becerisini de etkiler.
    • API, hem kullanıcı hem de kullanıcı için okunabilen bir açık adres sağlamaya çalışır aynı zamanda kullanıcı girdisini yansıtır. Yer tahminleri ve istekteki kullanıcı girişine bağlı olarak farklı şekillerde biçimlendirilir.
      • input parametresindeki eşleşen terimler, hizalı adlar kullanılarak ilk olarak seçilir. aşağıdaki durumlarda languageCode parametresi tarafından belirtilen dil tercihiyle kullanılabilir, ancak kullanıcı girişiyle en iyi eşleşen adlar kullanılır.
      • Açık adresler yerel dilde, kullanıcı tarafından okunabilecek bir alfabede biçimlendirilir yalnızca anahtar kelime listesindeki terimlerle eşleşecek şekilde eşleşen terimler seçildikten sonra input parametresinden yararlanın.
      • Tüm diğer adresler, eşleşen terimlerden sonra tercih edilen dilde döndürülür input parametresindeki terimlerle eşleşecek şekilde seçildi. Ad dil varsa API en yakın eşleşmeyi kullanır.
  • Konum ön yargıları veya konum Kısıtlaması

    locationBias veya locationRestriction, kullanın. locationRestriction yerine sonuçların içinde olması gereken bölge ve locationBias olarak sonuçların yakınında olması gereken ancak dışında olabilecek bölgeyi belirtmek inceleyeceğiz.

    • locationBias

      Aranacak alanı belirtir. Bu konum, belirli bir belirtilen konumun etrafındaki sonuçlar, şunun sonuçları da dahil olmak üzere döndürülebilir: belirtilen alanın dışına çıktı.

    • locationRestriction

      Aranacak alanı belirtir. Belirtilen alanın dışındaki sonuçlar geri döndü.

    locationBias veya locationRestriction bölgesini bir dikdörtgen görünüm veya daire şeklinde.

    • Bir daire, merkez noktası ve metre cinsinden yarıçapla tanımlanır. Yarıçap şunun arasında olmalıdır: 0,0 ve 50000,0 (bu değerler dahil) Varsayılan değer 0,0'dır. locationRestriction için, yarıçapı 0,0'dan büyük bir değere ayarlamanız gerekir. Aksi takdirde istek, sonuç yok.

      Örneğin:

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • Dikdörtgen, iki şekilde gösterilen enlem-boylam görünümüdür low yönünde ve yüksek noktaların karşısında çapraz olarak çapraz olarak bulunur. Görüntü alanı, yani kendi sınırını içerir. Enlem sınırları -90 ile 90 derece (her ikisi de dahil) arasında olmalı ve boylam sınırları -180 ile 180 derece (her iki değer dahil) arasında olmalıdır:

      • low = high olursa, görüntü alanı bu tek noktadan oluşur.
      • Eğer low.longitude > high.longitude, boylam aralığı ters çevrilmiş (görüntü alanı 180 derecelik boylam çizgisini geçer).
      • low.longitude = -180 derece ve high.longitude = 180 derece ise görüntü alanı tüm boylamları içerir.
      • low.longitude = 180 derece ve high.longitude = -180 derece ise boylam aralığı boş.

      Hem low hem de high doldurulmalı ve gösterilen kutu doldurulmalıdır boş bırakılamaz. Boş görüntü alanı hatayla sonuçlanır.

      Örneğin, bu görüntü alanı New York City'yi tamamen kapsar:

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • kaynak

    Hedefe olan düz çizgi uzaklığının hesaplanacağı başlangıç noktası hedef (distanceMeters olarak döndürülür). Bu değer atlanırsa, düz çizgi mesafesi döndürülmez. Şu şekilde belirtilmelidir: enlem ve boylam koordinatları:

    "origin": {
        "latitude": 40.477398,
        "longitude": -74.259087
    }
  • regionCode

    Yanıtı biçimlendirmek için kullanılan bölge kodu, ccTLD ("üst düzey alan") iki karakterlik değer. Çoğu ccTLD kodu, ISO 3166-1 kodlarıyla aynıdır. bazı önemli istisnalarla birlikte. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu "gb" ise (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı").

    Geçersiz bir bölge kodu belirtirseniz API bir INVALID_ARGUMENT döndürür. hatası. Parametre, geçerli yasalara göre sonuçları etkileyebilir.

  • sessionToken

    Oturum jetonları Otomatik Tamamlama'yı izleyen kullanıcı tarafından oluşturulmuş dizelerdir (Yeni) aramaları "oturumlar" olarak adlandırılır. Otomatik Tamamlama (Yeni), şunları yapmak için oturum jetonlarını kullanır: Kullanıcı otomatik tamamlama aramasının sorgu ve seçim aşamalarını ayrı bir oturumda . Daha fazla bilgi için bkz. Oturum jetonları.

Otomatik tamamlama (Yeni) örnekleri

Konum kısıtlaması ve konum önerileri kullan

API, arama alanını kontrol etmek için varsayılan olarak IP ağırlıklandırmayı kullanır. IP'ye ağırlık vermede API, Sonuçlarda sapmalar oluşturmak için cihazın IP adresi. İsterseniz Arama yapılacak bir alan belirtmek için locationRestriction veya locationBias (ikisi birden değil).

locationRestriction, aranacak alanı belirtir. Belirtilen alanın dışındaki sonuçlar döndürülmez. Aşağıdaki örnekte, locationRestriction merkezî yarıçapı San Francisco merkezli 5000 metre mesafedeki bir daire için istek oluştur:

curl -X POST -d '{
  "input": "Amoeba",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Belirtilen alanlardan gelen tüm sonuçlar suggestions dizisinde yer alır:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "home_goods_store",
          "establishment",
          "store",
          "point_of_interest",
          "electronics_store"
        ]
      }
    }
  ]
}

locationBias ile konum, önyargı olarak değerlendirilebilir ve bu da belirtilen alanın dışındaki sonuçlar da dahil olmak üzere belirtilen konum döndürülebilir. Sonraki locationBias öğesini kullanmak için isteği değiştirdiğinizde:

curl -X POST -d '{
  "input": "Amoeba",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Sonuçlar artık, 5000 metre yarıçapın dışındaki sonuçlar da dahil olmak üzere çok daha fazla öğe içeriyor:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "store",
          "establishment",
          "home_goods_store"
        ]
      }
    },
    {
      "placePrediction": {
        "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
        "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
        "text": {
          "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Telegraph Avenue, Berkeley, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "establishment",
          "home_goods_store",
          "store"
        ]
      }
    },
    ...
  ]
}

includePrimaryTypes örneğinde olduğu gibi,

Şundan en fazla beş tür değeri belirtmek için includedPrimaryTypes parametresini kullanın: Tablo A, Tablo B, veya yalnızca (regions) ya da yalnızca (cities). Yer, belirtilen yerlerden biriyle eşleşmelidir yanıta dahil edilecek birincil tür değerleri.

Aşağıdaki örnekte, bir input dizesi "Futbol" ve sonuçları şununla sınırlamak için includedPrimaryTypes parametresini kullanın: "sporting_goods_store" türü kuruluşlar:

curl -X POST -d '{
  "input": "Soccer",
  "includedPrimaryTypes": ["sporting_goods_store"],
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

includedPrimaryTypes parametresini çıkarırsanız sonuçlar istemediğiniz türden kuruluşlar, örneğin "athletic_field".

Sorgu tahminleri isteme

Sorgu tahminleri varsayılan olarak döndürülmez. includeQueryPredictions kullanın request parametresini kullanın. Örneğin:

curl -X POST -d '{
  "input": "Amoeba",
  "includeQueryPredictions": true,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

suggestions dizisi artık hem yer hem de sorgu tahminleri içeriyor Yukarıdaki Yanıt hakkında bölümünde gösterildiği gibi. Her bir sorgu tahmini önerilen metin arama dizesi içeren text alanını içerir. Bu URL'yi Metin Arama (Yeni) isteği gönderir.

Kaynağı kullan

Bu örnekte, enlem ve boylam koordinatları olarak isteğe origin ekleyin. origin öğesini eklediğinizde API, distanceMeters alanını origin ile hedefe arasındaki düz çizgiyi içeren yanıt. Bu örnekte başlangıç noktası San Francisco'nun merkezi olarak ayarlanmaktadır:

curl -X POST -d '{
  "input": "Amoeba",
  "origin": {
    "latitude": 37.7749,
    "longitude": -122.4194
  },
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Yanıt artık distanceMeters içeriyor:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "home_goods_store",
          "establishment",
          "point_of_interest",
          "store",
          "electronics_store"
        ],
        "distanceMeters": 3012
      }
    }
  ]
}

Deneyin!

API Gezgini sayesinde örnek isteklerde bulunabilirsiniz. hakkında da bilgi edineceksiniz.

  1. API simgesini, API Gezgini'ni genişletin. sekmesini tıklayın.
  2. İsteğe bağlı olarak Standart parametreleri göster'i genişletin ve fields parametresi alan maskesine benzer.
  3. İsteğe bağlı olarak İstek gövdesini düzenleyin.
  4. Yürüt düğmesini seçin. Pop-up pencerede, istekte bulunmak için kullanmak istediğiniz hesabı seçin.
  5. API Gezgini panelinde genişlet simgesini seçin, API Gezgini penceresini genişletmek için API Gezgini'ni genişletin. tuşlarına basın.