Place Autocomplete (Lama)

Developer Wilayah Ekonomi Eropa (EEA)

Place Autocomplete (Lama) adalah layanan web yang menampilkan prediksi tempat sebagai respons terhadap permintaan HTTP. Permintaan ini menentukan string penelusuran tekstual dan batas geografis opsional. Layanan ini dapat digunakan untuk menyediakan fungsi pelengkapan otomatis untuk penelusuran geografis berbasis teks, dengan menampilkan tempat seperti bisnis, alamat, dan lokasi menarik saat pengguna mengetik.

Permintaan Place Autocomplete (Lama)

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

Place Autocomplete (Lama) dapat mencocokkan kata dan substring lengkap, yang me-resolve nama tempat, alamat, dan Plus Codes. Oleh karena itu, aplikasi dapat mengirimkan kueri saat pengguna mengetik, untuk memberikan prediksi tempat secara real time.

Anda harus memformat Plus Codes dengan benar. Artinya, Anda harus mengubah tanda plus ke bentuk URL menjadi %2B, dan Anda harus mengubah spasi ke bentuk URL menjadi %20.

  • kode global adalah kode area berisi empat karakter, dan kode lokal berisi enam karakter atau lebih. Misalnya, kode global URL-escape 849VCWC8+R9 adalah 849VCWC8%2BR9.
  • kode gabungan adalah kode lokal berisi enam karakter (atau lebih) dengan lokasi yang eksplisit. Misalnya, kode gabungan yang di-escape URL CWC8+R9 Mountain View, CA, USA adalah CWC8%2BR9%20Mountain%20View%20CA%20USA.

Prediksi yang ditampilkan dirancang untuk ditampilkan kepada pengguna guna membantu mereka memilih tempat yang diinginkan. Anda dapat mengirim permintaan Place Details (Lama) untuk informasi selengkapnya tentang tempat yang ditampilkan.

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

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

dengan output dapat berupa salah satu dari nilai berikut:

  • json (direkomendasikan) menunjukkan output dalam JavaScript Object Notation (JSON)
  • xml menunjukkan output sebagai XML

Parameter tertentu diperlukan untuk memulai permintaan Place 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

komponen

Pengelompokan tempat yang ingin Anda batasi hasilnya. Anda dapat menggunakan komponen untuk memfilter hingga 5 negara. Negara harus diteruskan berupa dua karakter kode negara yang kompatibel dengan ISO 3166-1 Alpha-2. Misalnya: components=country:fr akan membatasi hasil Anda ke tempat-tempat di Prancis. Beberapa negara harus diteruskan sebagai beberapa filter country:XX, dengan karakter pipa | sebagai pemisah. Misalnya: components=country:us|country:pr|country:vi|country:gu|country:mp akan membatasi hasil Anda ke tempat-tempat di Amerika Serikat dan wilayah terorganisir yang tidak tergabung.

Catatan: Jika Anda menerima hasil yang tidak terduga dengan kode negara, pastikan Anda menggunakan kode yang mencakup negara, wilayah dependen, dan area minat geografis khusus yang Anda inginkan. Anda dapat menemukan informasi kode di Wikipedia: List of ISO 3166 country codes atau ISO Online Browsing Platform.

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 melakukan yang terbaik untuk memberikan alamat yang dapat dibaca oleh pengguna dan penduduk setempat. Untuk mencapai sasaran tersebut, API ini menampilkan alamat jalan dalam bahasa lokal, yang ditransliterasikan ke skrip yang dapat dibaca oleh pengguna jika perlu, dengan mengamati 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

Titik di sekitar tempat informasi tempat akan diambil. Nilai ini harus ditentukan sebagai latitude,longitude. Parameter radius juga harus diberikan saat menentukan lokasi. Jika radius tidak diberikan, parameter location akan diabaikan.

Saat menggunakan Text Search API, parameter `location` dapat diganti jika `query` berisi lokasi eksplisit seperti `Market in Barcelona`.

locationbias

Memprioritaskan hasil di area tertentu, dengan menentukan radius plus lintang/bujur, atau dua pasangan lintang/bujur yang mewakili titik-titik persegi panjang. Jika parameter ini tidak ditentukan, API akan menggunakan pembiasan alamat IP secara default.

  • IP bias: Menginstruksikan API untuk menggunakan pembiasan alamat IP. Teruskan string ipbias (opsi ini tidak memiliki parameter tambahan).
  • Lingkaran: String yang menentukan radius dalam meter, ditambah lintang/bujur dalam derajat desimal. Gunakan format berikut: circle:radius@lat,lng.
  • Persegi panjang: String yang menentukan dua pasangan lintang/bujur dalam derajat desimal, yang mewakili titik selatan/barat dan utara/timur persegi panjang. Gunakan format berikut:rectangle:south,west|north,east. Perhatikan bahwa nilai timur/barat digabungkan ke rentang -180, 180, dan nilai utara/selatan dibatasi ke rentang -90, 90.

locationrestriction

Batasi hasil ke area yang ditentukan, dengan menentukan radius plus lintang/bujur, atau dua pasangan lintang/bujur yang mewakili titik-titik persegi panjang.

  • Lingkaran: String yang menentukan radius dalam meter, ditambah lintang/bujur dalam derajat desimal. Gunakan format berikut: circle:radius@lat,lng.
  • Persegi panjang: String yang menentukan dua pasangan lintang/bujur dalam derajat desimal, yang mewakili titik selatan/barat dan utara/timur persegi panjang. Gunakan format berikut:rectangle:south,west|north,east. Perhatikan bahwa nilai timur/barat digabungkan ke rentang -180, 180, dan nilai utara/selatan dibatasi ke rentang -90, 90.

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.

asal

Titik asal untuk menghitung jarak garis lurus ke tujuan (ditampilkan sebagai distance_meters). Jika nilai ini dihilangkan, jarak garis lurus tidak akan ditampilkan. Harus ditentukan sebagai latitude,longitude.

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 agar memprioritaskan untuk 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
  • Text Search: 50.000 meter

region

Kode wilayah, yang ditetapkan sebagai nilai dua karakter ccTLD ("domain level teratas"). Sebagian besar kode ccTLD identik dengan kode ISO 3166-1, dengan beberapa pengecualian. Misalnya, ccTLD Inggris Raya adalah "uk" (.co.uk) sedangkan kode ISO 3166-1-nya adalah "gb" (secara teknis untuk entitas "The United Kingdom of Great Britain and Northern Ireland").

sessiontoken

String acak yang mengidentifikasi sesi pelengkapan otomatis untuk tujuan penagihan.

Sesi dimulai saat pengguna mulai mengetik kueri, dan berakhir saat pengguna memilih tempat dan panggilan ke Place Details dilakukan. Setiap sesi dapat memiliki beberapa kueri, yang diikuti dengan satu pilihan tempat. Kunci API yang digunakan untuk setiap permintaan dalam satu sesi harus berasal dari project Konsol Google Cloud yang sama. Setelah sesi selesai, token tidak lagi valid. Aplikasi Anda harus membuat token baru untuk setiap sesi. Jika parameter sessiontoken dihilangkan, atau jika Anda menggunakan kembali token sesi, sesi tersebut dikenai biaya seolah-olah tidak ada token sesi yang diberikan (setiap permintaan ditagih secara terpisah).

Sebaiknya ikuti panduan berikut:

  • Gunakan token sesi untuk semua sesi pelengkapan otomatis.
  • Buat token baru untuk setiap sesi. Sebaiknya gunakan UUID versi 4.
  • Pastikan kunci API yang digunakan untuk semua permintaan Place Autocomplete dan Place Details dalam satu sesi berasal dari project Konsol Cloud yang sama.
  • Pastikan untuk meneruskan token sesi yang unik untuk setiap sesi baru. Jika menggunakan token yang sama untuk lebih dari satu sesi, setiap permintaan akan ditagih satu per satu.

strictbounds

Hanya menampilkan tempat yang benar-benar berada dalam wilayah yang ditentukan oleh location dan radius. Ini adalah batasan, bukan bias, yang berarti hasil di luar wilayah ini tidak akan ditampilkan meskipun cocok dengan input pengguna.

tipe

Anda dapat membatasi hasil dari permintaan Place Autocomplete ke jenis tertentu dengan meneruskan parameter types. Parameter ini menentukan jenis atau kumpulan jenis, seperti yang tercantum dalam Jenis Tempat. Jika tidak ada yang ditetapkan, semua tipe akan dikembalikan.

Tempat hanya dapat memiliki satu jenis utama dari jenis yang tercantum dalam Tabel 1 atau Tabel 2. Misalnya, hotel yang menyajikan makanan mungkin hanya ditampilkan dengan types=lodging dan bukan dengan types=restaurant.

Untuk nilai parameter types, Anda dapat menentukan:

  • Hingga lima nilai dari Tabel 1 atau Tabel 2. Untuk beberapa nilai, pisahkan setiap nilai dengan | (batang vertikal). Contoh:

    types=book_store|cafe

  • Satu filter yang didukung di Tabel 3. Anda tidak dapat mencampur koleksi jenis.

Permintaan akan ditolak dengan error INVALID_REQUEST jika:

  • Lebih dari lima jenis ditentukan.
  • Ada jenis yang tidak dikenal.
  • Semua jenis dari Tabel 1 atau Tabel 2 dicampur dengan filter apa pun di Tabel 3.

Contoh Place Autocomplete (Lama)

Permintaan untuk tempat usaha yang berisi string "Amoeba" dalam area yang berpusat di San Francisco, CA:

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'

Permintaan yang sama, dibatasi untuk hasil dalam radius 500 meter dari 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'

Permintaan alamat yang berisi "Vict" dengan hasil dalam bahasa Prancis:

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'

Permintaan untuk kota yang berisi "Vict" dengan hasil dalam bahasa Portugis Brasil:

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'

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

Respons Place Autocomplete (Lama)

Respons Place Autocomplete (Lama) ditampilkan dalam format yang ditunjukkan oleh flag output dalam jalur URL permintaan. Hasil di bawah ini menunjukkan apa yang mungkin ditampilkan untuk kueri dengan parameter berikut:

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

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.

Yang menarik dalam hasil adalah elemen place_id, yang dapat digunakan untuk meminta detail yang lebih spesifik tentang tempat tersebut menggunakan kueri terpisah. Lihat permintaan Place Details (Lama).

Respons XML terdiri dari satu elemen <AutocompletionResponse> dengan dua jenis elemen turunan:

  • Satu elemen <status> berisi metadata tentang permintaan. Lihat Kode Status di bawah.
  • Nol atau beberapa elemen <prediction>, yang masing-masing berisi informasi tentang satu tempat. Lihat Hasil Place Autocomplete (Lama) untuk mengetahui informasi tentang hasil ini. Places API menampilkan hingga 5 hasil.

Sebaiknya gunakan json sebagai flag output pilihan, kecuali jika aplikasi Anda memerlukan xml karena alasan tertentu. Pemrosesan hierarki XML memerlukan perhatian, sehingga Anda mereferensikan node dan elemen yang tepat. Lihat Memproses XML dengan XPath untuk mendapatkan bantuan dalam memproses XML.

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

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

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

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.

Pengoptimalan Place Autocomplete (Lama)

Bagian ini menjelaskan praktik terbaik untuk membantu Anda memaksimalkan layanan Place Autocomplete (Lama).

Berikut ini beberapa pedoman umum:

  • Cara tercepat untuk membuat antarmuka pengguna yang berfungsi baik adalah dengan menggunakan widget Place Autocomplete (Lama) Maps JavaScript API, widget Place Autocomplete (Lama) Places SDK for Android, atau Kontrol UI Place Autocomplete (Lama) Places SDK for iOS.
  • Pahami kolom data Place Autocomplete (Lama) yang penting sejak awal.
  • Kolom pembiasan lokasi dan pembatasan lokasi bersifat opsional, tetapi dapat memberikan dampak signifikan terhadap performa pelengkapan otomatis.
  • Gunakan penanganan error untuk memastikan aplikasi Anda terdegrasi secara halus jika API menampilkan error.
  • Pastikan aplikasi Anda menanganinya jika tidak ada pilihan dan menawarkan cara kepada pengguna untuk melanjutkan.

Praktik terbaik pengoptimalan biaya

Pengoptimalan biaya dasar

Untuk mengoptimalkan biaya penggunaan layanan Place Autocomplete (Lama), gunakan mask kolom dalam widget Place Details (Lama) dan Place Autocomplete (Lama) agar hanya menampilkan kolom data Place Autocomplete (Lama) yang Anda butuhkan.

Pengoptimalan biaya lanjutan

Pertimbangkan implementasi Place Autocomplete (Legacy) yang terprogram untuk mengakses SKU: Autocomplete - Per Request pricing dan meminta hasil Geocoding API tentang tempat yang dipilih, bukan Place Details (Legacy). Harga per permintaan yang dipasangkan dengan Geocoding API lebih hemat biaya daripada harga per sesi (berbasis sesi) jika kondisi berikut terpenuhi:

  • Jika Anda hanya memerlukan lintang dan bujur atau alamat tempat yang dipilih pengguna, Geocoding API akan mengirimkan informasi ini dengan biaya yang lebih murah daripada panggilan Place Details (Lama).
  • Jika pengguna memilih prediksi pelengkapan otomatis dalam rata-rata empat permintaan prediksi Place Autocomplete (Lama) atau kurang, harga per permintaan dapat lebih hemat biaya daripada harga per sesi.
Untuk memilih penerapan Place Autocomplete (Lama) yang paling hemat biaya untuk aplikasi Anda, temukan baris dalam tabel berikut yang sesuai dengan kebutuhan aplikasi Anda.
Yang dibutuhkan aplikasi Anda Rata-rata permintaan Place Autocomplete (Lama) sebelum pengguna memilih prediksi Penerapan yang direkomendasikan
Detail tempat selain alamat dan lokasi, seperti nama tempat, status bisnis, atau jam buka Berapa saja Place Autocomplete (Lama) berbasis sesi dengan Place Details (Lama)
Hanya alamat dan lintang/bujur dari prediksi yang dipilih Empat atau kurang Place Autocomplete (Lama) per permintaan dengan Geocoding API
Hanya alamat dan lintang/bujur dari prediksi yang dipilih Lebih dari empat Place Autocomplete (Lama) berbasis sesi untuk aplikasi khusus alamat

Geocoding API dapat menjadi opsi yang lebih hemat biaya daripada Place Details (Lama) untuk aplikasi Anda, bergantung pada performa penggunaan Place Autocomplete (Lama). Efisiensi Place Autocomplete (Lama) setiap aplikasi bervariasi bergantung pada apa yang dimasukkan oleh pengguna, tempat aplikasi digunakan, dan apakah praktik terbaik pengoptimalan performa telah diterapkan.

Untuk menemukan jumlah rata-rata permintaan untuk tabel, analisis rata-rata jumlah karakter yang diketik pengguna sebelum memilih prediksi Place Autocomplete (Lama) di aplikasi Anda.

Place Autocomplete (Lama) berbasis sesi dengan Place Details (Lama)

Gunakan Place Autocomplete (Lama) berbasis sesi dengan Place Details (Lama).
Karena aplikasi Anda memerlukan Place Details (Lama), seperti nama tempat, status bisnis, atau jam buka, implementasi Place Autocomplete (Lama) Anda harus menggunakan token sesi (secara terprogram atau yang disertakan dalam widget JavaScript, Android, atau iOS) per sesi ditambah SKU Data Places yang berlaku, bergantung pada kolom data tempat yang Anda minta.1

Penerapan widget
Pengelolaan sesi secara otomatis terintegrasi ke dalam widget JavaScript, Android, atau iOS . Ini mencakup permintaan Place Autocomplete (Legacy) dan permintaan Place Details (Legacy) pada prediksi yang dipilih. Pastikan untuk menentukan parameter fields untuk memastikan Anda hanya meminta kolom data Place Autocomplete (Lama) yang Anda butuhkan.

Penerapan terprogram
Gunakan token sesi dengan permintaan Place Autocomplete (Lama) Anda. Saat meminta Place Details (Lama) tentang prediksi yang dipilih, sertakan parameter berikut:

  1. ID tempat dari respons Place Autocomplete (Lama)
  2. Token sesi yang digunakan dalam permintaan Place Autocomplete (Lama)
  3. Parameter fields yang menentukan kolom data Place Autocomplete (Lama) yang Anda perlukan

Place Autocomplete (Lama) per permintaan dengan Geocoding API

Terapkan Place Autocomplete (Lama) secara terprogram tanpa token sesi dan panggil Geocoding API di prediksi tempat yang dipilih.
Geocoding API memberikan alamat dan koordinat lintang/bujur. Membuat empat permintaan Autocomplete - Per Request ditambah panggilan Geocoding API tentang prediksi tempat yang dipilih lebih murah daripada biaya per sesi Place Autocomplete (Lama).1

Pertimbangkan untuk menerapkan praktik terbaik performa guna membantu pengguna mendapatkan prediksi yang mereka cari dengan lebih sedikit karakter.

Place Autocomplete (Lama) berbasis sesi untuk aplikasi khusus alamat

Gunakan Place Autocomplete (Lama) berbasis sesi dengan Place Details (Lama).
Karena perkiraan jumlah rata-rata permintaan yang Anda buat sebelum pengguna memilih prediksi Place Autocomplete (Lama) melebihi biaya harga per sesi, penerapan Place Autocomplete (Lama) Anda harus menggunakan token sesi untuk permintaan Place Autocomplete (Lama) dan permintaan Place Details (Lama) terkait per sesi. 1

Penerapan widget
Pengelolaan sesi secara otomatis terintegrasi ke dalam widget JavaScript, Android, atau iOS. Ini mencakup permintaan Place Autocomplete (Legacy) dan permintaan Place Details (Legacy) pada prediksi yang dipilih. Pastikan untuk menentukan parameter fields untuk memastikan Anda hanya meminta kolom yang Anda butuhkan.

Penerapan terprogram
Gunakan token sesi dengan permintaan Place Autocomplete (Lama) Anda. Saat meminta Place Details (Lama) tentang prediksi yang dipilih, sertakan parameter berikut:

  1. ID tempat dari respons Place Autocomplete (Lama)
  2. Token sesi yang digunakan dalam permintaan Place Autocomplete (Lama)
  3. Parameter fields yang menentukan kolom Basic Data seperti alamat dan geometri

Pertimbangkan untuk menunda permintaan Place Autocomplete (Lama)
Anda dapat menggunakan strategi seperti menunda permintaan Place Autocomplete (Lama) hingga pengguna mengetik tiga atau empat karakter pertama, sehingga aplikasi Anda membuat lebih sedikit permintaan. Misalnya, membuat permintaan Place Autocomplete (Lama) untuk setiap karakter setelah pengguna mengetik karakter ketiga berarti jika pengguna mengetik tujuh karakter, lalu memilih prediksi yang Anda buat satu permintaan Geocoding API, total biayanya adalah untuk 4 Place Autocomplete (Lama) Per Permintaan + Geocoding.1

Jika permintaan yang tertunda dapat menghasilkan permintaan terprogram rata-rata di bawah empat, Anda dapat mengikuti panduan ini untuk penerapan Place Autocomplete (Lama) yang berperforma dengan Geocoding API. Perhatikan bahwa permintaan yang tertunda dapat dianggap sebagai latensi oleh pengguna yang mungkin berharap melihat prediksi dengan setiap karakter baru yang mereka ketik.

Pertimbangkan untuk menerapkan praktik terbaik performa guna membantu pengguna Anda mendapatkan prediksi yang mereka cari dengan lebih sedikit karakter.


  1. Untuk mengetahui biaya, lihat daftar harga Google Maps Platform.

Praktik terbaik performa

Panduan berikut menjelaskan cara mengoptimalkan performa Place Autocomplete (Lama):

  • Tambahkan pembatasan negara, pembiasan lokasi, dan (untuk penerapan terprogram) preferensi bahasa ke penerapan Place Autocomplete (Lama) Anda. Preferensi bahasa tidak diperlukan dengan widget karena widget tersebut memilih preferensi bahasa dari browser atau perangkat seluler pengguna.
  • Jika Place Autocomplete (Lama) disertai sebuah peta, Anda dapat membiaskan lokasi berdasarkan area pandang peta.
  • Jika pengguna tidak memilih salah satu prediksi Place Autocomplete (Lama), umumnya karena tidak satu pun prediksi tersebut yang merupakan alamat hasil yang diinginkan, Anda dapat menggunakan kembali input pengguna yang asli untuk mendapatkan hasil yang lebih relevan:
    • Jika Anda mengharapkan pengguna hanya memasukkan informasi alamat, gunakan kembali input pengguna yang asli dalam panggilan ke Geocoding API.
    • Jika Anda memperkirakan pengguna akan memasukkan kueri untuk tempat tertentu berdasarkan nama atau alamat, gunakan permintaan Place Details (Lama). Jika hasil hanya diharapkan di wilayah tertentu, gunakan pembiasan lokasi.
    Skenario lain saat Anda sebaiknya beralih kembali ke Geocoding API mencakup:
    • Pengguna yang memasukkan alamat sub-premis, seperti alamat untuk unit atau apartemen tertentu dalam sebuah gedung. Misalnya, alamat Ceko "Stroupežnického 3191/17, Praha" akan menghasilkan prediksi parsial di Place Autocomplete (Lama).
    • Pengguna memasukkan alamat dengan awalan segmen jalan seperti "23-30 29th St, Queens" di New York City atau "47-380 Kamehameha Hwy, Kaneohe" di pulau Kauai di Hawai'i.

Pembiasan lokasi

Biasakan hasil ke area yang ditentukan dengan meneruskan parameter location dan parameter radius. Tindakan ini akan menginstruksikan Place Autocomplete (Lama) untuk memprioritaskan menampilkan hasil dalam area yang ditentukan. Hasil di luar area yang ditentukan mungkin tetap ditampilkan. Anda dapat menggunakan parameter includedRegionCodes untuk memfilter hasil agar hanya menampilkan tempat dalam negara yang ditentukan.

Pembatasan lokasi

Batasi hasil ke area yang ditentukan dengan meneruskan parameter locationRestriction.

Anda juga dapat membatasi hasil ke wilayah yang ditentukan oleh parameter location dan radius, dengan menambahkan parameter strictbounds . Tindakan ini akan menginstruksikan Place Autocomplete (Lama) untuk hanya menampilkan hasil dalam wilayah tersebut.