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 (Lama)

Query Autocomplete (Lama) adalah bagian dari Places API (Lama) dan menggunakan kunci API dan kuota yang sama dengan Places API (Lama).

Query Autocomplete (Lama) memungkinkan Anda menambahkan prediksi kueri geografis secara langsung ke aplikasi. Alih-alih menelusuri lokasi tertentu, pengguna dapat mengetik penelusuran kategoris, seperti "pizza di dekat Bandung" dan layanan akan merespons dengan daftar kueri yang disarankan yang cocok dengan string tersebut. Karena Query Autocomplete (Lama) dapat mencocokkan kata lengkap dan substring, aplikasi dapat mengirimkan kueri saat pengguna mengetik untuk memberikan prediksi secara real time.

Permintaan Query Autocomplete (Lama) adalah URL HTTP dengan format berikut:

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

dengan output dapat berupa json atau xml.

Parameter tertentu diperlukan untuk memulai permintaan Query Autocomplete (Lama). Sebagaimana standar dalam URL, semua parameter dipisah menggunakan karakter ampersand (&). Daftar parameter dan kemungkinan nilainya diuraikan di bawah ini.

Parameter yang diperlukan

  • input

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

Parameter opsional

  • bahasa

    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 yang dapat dibaca oleh pengguna dan penduduk setempat. Untuk mencapai tujuan tersebut, API ini menampilkan alamat jalan dalam bahasa lokal, yang ditransliterasikan 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 pengaruh kecil pada kumpulan hasil yang dipilih API untuk ditampilkan, dan urutan kemunculannya. 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 tempat penelusuran. 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. Penggunaan tanda kutip di sekitar kueri juga dapat memengaruhi bobot yang diberikan pada location dan radius.
  • offset

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

  • radius

    Menentukan jarak (dalam meter) untuk menampilkan hasil tempat. Anda dapat membiaskan hasil ke lingkaran yang ditentukan dengan meneruskan parameter location dan radius. Tindakan ini akan menginstruksikan layanan Places untuk memprioritaskan 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.

    • Autocomplete: 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
    • Text Search: 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 near 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 (Lama)

Respons Pelengkapan Otomatis Kueri (Lama) ditampilkan dalam format yang ditunjukkan oleh flag output dalam jalur permintaan URL. Hasil di bawah 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 menampilkan hasil JSON dari penelusuran, layanan Places 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
required Array<PlaceAutocompletePrediction>

Berisi array prediksi.

Lihat PlaceAutocompletePrediction untuk mengetahui informasi selengkapnya.

required 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 sewaktu-waktu.

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. ID ini mungkin tidak selalu ditampilkan, dan kontennya 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 diteruskan ke 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 hal berikut:
    • 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 memiliki kunci API.
    • Parameter key tidak valid.
  • UNKNOWN_ERROR menunjukkan error yang tidak dikenal.

Saat menampilkan hasil JSON dari penelusuran, layanan Places 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 atau beberapa elemen <prediction>.

PlaceAutocompletePrediction

Kolom Wajib Jenis Deskripsi
required string

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

required 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.

required PlaceAutocompleteStructuredFormat

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

Lihat PlaceAutocompleteStructuredFormat untuk mengetahui informasi selengkapnya.

required 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 tempat 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 permintaan API Places. Untuk 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
required angka

Panjang substring yang cocok dalam teks hasil prediksi.

required angka

Lokasi awal substring yang cocok dalam teks hasil prediksi.

PlaceAutocompleteStructuredFormat

Kolom Wajib Jenis Deskripsi
required string

Berisi teks utama prediksi, biasanya nama tempat.

required Array<PlaceAutocompleteMatchedSubstring>

Berisi array dengan nilai offset dan length. 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. 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
required angka

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

required string

Teks istilah.