Query Autocomplete (Lama)

Developer Wilayah Ekonomi Eropa (EEA)

Pelengkapan Otomatis Kueri (Lama) dapat digunakan untuk memberikan prediksi kueri untuk penelusuran geografis berbasis teks, dengan menampilkan kueri yang disarankan saat Anda mengetik.

Permintaan Query Autocomplete (Legacy)

Query Autocomplete (Lama) adalah bagian dari Places API (Lama) dan berbagi kunci API dan kuota dengan Places API (Lama).

Pelengkapan Otomatis Kueri (Lama) memungkinkan Anda menambahkan prediksi kueri geografis secara langsung ke aplikasi Anda. Daripada menelusuri lokasi tertentu, pengguna dapat mengetik penelusuran berdasarkan kategori, seperti "pizza dekat Bandung" dan layanan akan merespons dengan menampilkan daftar kueri yang disarankan yang cocok dengan string. Karena Pelengkapan Otomatis Kueri (Lama) dapat mencocokkan kata lengkap dan substring, aplikasi dapat mengirimkan kueri saat pengguna mengetik untuk memberikan prediksi secara real time.

Permintaan Pelengkapan Otomatis Kueri (Lama) adalah URL HTTP dengan bentuk berikut:

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

dengan output dapat berupa json atau xml.

Parameter tertentu diperlukan untuk memulai permintaan Pelengkapan Otomatis Kueri (Lama). Sesuai dengan standar dalam URL, semua parameter dipisahkan menggunakan karakter ampersand (&). Daftar parameter dan kemungkinan nilainya tercantum di bawah.

Parameter yang diperlukan

  • input

    String teks yang akan ditelusuri. Layanan Place Autocomplete akan menampilkan bakal hasil berdasarkan string ini dan mengurutkan hasil berdasarkan relevansi yang terlihat.

Parameter opsional

  • language

    Bahasa yang digunakan untuk menampilkan hasil.

    • Lihat daftar bahasa yang didukung. Google sering memperbarui bahasa yang didukung, sehingga daftar ini mungkin tidak lengkap.
    • Jika language tidak diberikan, API akan mencoba menggunakan bahasa pilihan seperti yang ditentukan dalam header Accept-Language.
    • API ini berupaya sebaik mungkin untuk memberikan alamat jalan yang dapat dibaca oleh pengguna dan penduduk setempat. Untuk mencapai tujuan tersebut, API ini menampilkan alamat jalan dalam bahasa lokal, yang ditransliterasi ke skrip yang dapat dibaca oleh pengguna jika perlu, dengan memperhatikan bahasa pilihan. Semua alamat lainnya ditampilkan dalam bahasa pilihan. Komponen alamat semuanya ditampilkan dalam bahasa yang sama, yang dipilih dari komponen pertama.
    • Jika nama tidak tersedia dalam bahasa pilihan, API akan menggunakan kecocokan terdekat.
    • Bahasa pilihan memiliki sedikit pengaruh pada kumpulan hasil yang dipilih API untuk ditampilkan, dan urutan penampilannya. Geocoder menafsirkan singkatan secara berbeda bergantung pada bahasa, seperti singkatan untuk jenis jalan, atau sinonim yang mungkin valid dalam satu bahasa, tetapi tidak dalam bahasa lain. Misalnya, utca dan tér adalah sinonim untuk jalan dalam bahasa Hungaria.
  • lokasi

    Menentukan titik, sebagai koordinat latitude,longitude, di sekitar lokasi yang akan ditelusuri. Layanan Places menggunakan lokasi untuk membiaskan penelusuran agar lebih memilih menampilkan hasil di area yang ditentukan oleh location dan radius; hasil di luar area yang ditentukan mungkin tetap ditampilkan.

    Parameter location dapat diganti jika query berisi lokasi eksplisit seperti Market in Barcelona. Menggunakan tanda petik di sekitar kueri juga dapat memengaruhi bobot yang diberikan pada location dan radius.
  • offset

    Posisi, dalam istilah input, dari karakter terakhir yang digunakan layanan untuk mencocokkan prediksi. Misalnya, jika inputnya adalah Google dan offsetnya adalah 3, layanan akan mencocokkan Goo. String yang ditentukan oleh offset dicocokkan dengan hanya kata pertama dalam istilah input. Misalnya, jika istilah inputnya adalah Google abc dan offsetnya adalah 3, layanan akan mencoba mencocokkan dengan Goo abc. Jika tidak ada offset yang diberikan, layanan akan menggunakan seluruh jangka waktu. Offset umumnya harus ditetapkan ke posisi kursor teks.

  • radius

    Menentukan jarak (dalam meter) untuk menampilkan hasil tempat. Anda dapat membiaskan hasil ke lingkaran yang ditentukan dengan meneruskan parameter location dan radius. Dengan melakukannya, layanan Places akan diinstruksikan untuk lebih memilih menampilkan hasil dalam lingkaran tersebut; hasil di luar area yang ditentukan mungkin tetap ditampilkan.

    Radius akan otomatis dibatasi ke nilai maksimum, bergantung pada jenis penelusuran dan parameter lainnya.

    • Pelengkapan otomatis: 50.000 meter
    • Nearby Search:
      • dengan keyword atau name: 50.000 meter
      • tanpa keyword atau name
        • Hingga 50.000 meter, disesuaikan secara dinamis berdasarkan kepadatan area, terlepas dari parameter rankby.
        • Saat menggunakan rankby=distance, parameter radius tidak akan diterima, dan akan menghasilkan INVALID_REQUEST.
    • Query Autocomplete: 50.000 meter
    • Penelusuran Teks: 50.000 meter

Contoh Query Autocomplete (Lama)

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'

Permintaan "Pizza dekat Par", dengan hasil dalam bahasa Prancis:

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'

Perhatikan bahwa Anda harus mengganti kunci API dalam contoh ini dengan kunci Anda sendiri.

Respons Query Autocomplete (Legacy)

Respons Pelengkapan Otomatis Kueri (Lama) ditampilkan dalam format yang ditunjukkan oleh tanda output dalam jalur permintaan URL. Hasil di bawah ini ditampilkan untuk kueri dengan parameter berikut:

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>
    
   

Saat layanan Places menampilkan hasil JSON dari penelusuran, layanan ini akan menempatkannya dalam array predictions. Meskipun layanan tidak menampilkan hasil (misalnya, jika location berada di lokasi terpencil), layanan tetap menampilkan array predictions kosong. Respons XML terdiri dari nol elemen <prediction> atau lebih.

PlacesQueryAutocompleteResponse

Kolom Wajib Jenis Deskripsi
wajib ada Array<PlaceAutocompletePrediction>

Berisi array prediksi.

Lihat PlaceAutocompletePrediction untuk mengetahui informasi selengkapnya.

wajib ada PlacesAutocompleteStatus

Berisi status permintaan, dan mungkin berisi informasi proses debug untuk membantu Anda melacak penyebab kegagalan permintaan.

Lihat PlacesAutocompleteStatus untuk mengetahui informasi selengkapnya.

opsional string

Jika layanan menampilkan kode status selain OK, mungkin ada kolom error_message tambahan dalam objek respons. Kolom ini berisi informasi yang lebih mendetail tentang alasan di balik kode status yang diberikan. Kolom ini tidak selalu ditampilkan, dan kontennya dapat berubah.

opsional Array<string>

Jika layanan menampilkan informasi tambahan tentang spesifikasi permintaan, mungkin ada kolom info_messages tambahan dalam objek respons. Kolom ini hanya ditampilkan untuk permintaan yang berhasil. Konten ini mungkin tidak selalu ditampilkan, dan isinya dapat berubah.

PlacesAutocompleteStatus

Kode status yang ditampilkan oleh layanan.

  • OK yang menunjukkan bahwa permintaan API berhasil.
  • ZERO_RESULTS yang menunjukkan bahwa penelusuran berhasil, tetapi tidak menampilkan hasil. Hal ini dapat terjadi jika penelusuran meneruskan batas di lokasi terpencil.
  • INVALID_REQUEST yang menunjukkan bahwa permintaan API memiliki format yang salah, biasanya karena parameter input tidak ada.
  • OVER_QUERY_LIMIT yang menunjukkan salah satu dari berikut ini:
    • Anda telah melampaui batas QPS.
    • Penagihan belum diaktifkan di akun Anda.
    • Kredit bulanan sebesar $200, atau batas penggunaan yang ditentukan sendiri, telah terlampaui.
    • Metode pembayaran yang diberikan sudah tidak valid (misalnya, kartu kredit yang sudah tidak berlaku).
    Lihat FAQ Maps untuk mengetahui informasi selengkapnya tentang cara mengatasi error ini.
  • REQUEST_DENIED yang menunjukkan bahwa permintaan Anda ditolak, biasanya karena:
    • Permintaan tidak berisi kunci API.
    • Parameter key tidak valid.
  • UNKNOWN_ERROR menunjukkan error yang tidak diketahui.

Saat layanan Places menampilkan hasil JSON dari penelusuran, layanan ini akan menempatkannya dalam array predictions. Meskipun layanan tidak menampilkan hasil (seperti jika location berada di lokasi terpencil), layanan tetap menampilkan array predictions kosong. Respons XML terdiri dari nol elemen <prediction> atau lebih.

PlaceAutocompletePrediction

Kolom Wajib Jenis Deskripsi
wajib ada string

Berisi nama yang dapat dibaca manusia untuk hasil yang ditampilkan. Untuk establishment hasil, biasanya ini adalah nama bisnis. Konten ini ditujukan untuk dibaca apa adanya. Jangan mengurai alamat berformat secara terprogram.

wajib ada Array<PlaceAutocompleteMatchedSubstring>

Daftar substring yang menjelaskan lokasi istilah yang dimasukkan dalam teks hasil prediksi, sehingga istilah tersebut dapat ditandai jika diinginkan.

Lihat PlaceAutocompleteMatchedSubstring untuk mengetahui informasi selengkapnya.

wajib ada PlaceAutocompleteStructuredFormat

Menyediakan teks yang telah diformat sebelumnya yang dapat ditampilkan di hasil pelengkapan otomatis Anda. Konten ini ditujukan untuk dibaca apa adanya. Jangan mengurai alamat berformat secara terprogram.

Lihat PlaceAutocompleteStructuredFormat untuk mengetahui informasi selengkapnya.

wajib ada Array<PlaceAutocompleteTerm>

Berisi array istilah yang mengidentifikasi setiap bagian dari deskripsi yang ditampilkan (bagian deskripsi umumnya diakhiri dengan koma). Setiap entri dalam array memiliki kolom value, yang berisi teks istilah, dan kolom offset, yang menentukan posisi awal istilah ini dalam deskripsi, yang diukur dalam karakter Unicode.

Lihat PlaceAutocompleteTerm untuk mengetahui informasi selengkapnya.

opsional bilangan bulat

Jarak garis lurus dalam meter dari asal. Kolom ini hanya ditampilkan untuk permintaan yang dibuat dengan origin.

opsional string

Sebuah identifier tekstual yang secara unik mengidentifikasi tempat. Untuk mengambil informasi tentang tempat, teruskan ID ini di kolom placeId pada permintaan Places API. Untuk mengetahui informasi selengkapnya tentang ID tempat, lihat ringkasan ID Tempat.

opsional string

Lihat place_id.

opsional Array<string>

Berisi array jenis yang berlaku untuk tempat ini. Misalnya: [ "political", "locality" ] atau [ "establishment", "geocode", "beauty_salon" ]. Array dapat berisi beberapa nilai. Pelajari lebih lanjut Jenis tempat.

PlaceAutocompleteMatchedSubstring

Kolom Wajib Jenis Deskripsi
wajib ada angka

Panjang substring yang cocok dalam teks hasil prediksi.

wajib ada angka

Lokasi awal substring yang cocok dalam hasil prediksi teks.

PlaceAutocompleteStructuredFormat

Kolom Wajib Jenis Deskripsi
wajib ada string

Berisi teks utama prediksi, biasanya nama tempat.

wajib ada Array<PlaceAutocompleteMatchedSubstring>

Berisi array dengan nilai offset dan length. Objek ini menjelaskan lokasi istilah yang dimasukkan dalam teks hasil prediksi, sehingga istilah tersebut dapat ditandai jika diinginkan.

Lihat PlaceAutocompleteMatchedSubstring untuk mengetahui informasi selengkapnya.

opsional string

Berisi teks sekunder prediksi, biasanya lokasi tempat.

opsional Array<PlaceAutocompleteMatchedSubstring>

Berisi array dengan nilai offset dan length. Objek ini menjelaskan lokasi istilah yang dimasukkan dalam teks hasil prediksi, sehingga istilah tersebut dapat ditandai jika diinginkan.

Lihat PlaceAutocompleteMatchedSubstring untuk mengetahui informasi selengkapnya.

PlaceAutocompleteTerm

Kolom Wajib Jenis Deskripsi
wajib ada angka

Menentukan posisi awal istilah ini dalam deskripsi, yang diukur dalam karakter Unicode

wajib ada string

Teks istilah.