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 tempat menarik saat pengguna mengetik.

Permintaan Place Autocomplete (Legacy)

Place Autocomplete (Legacy) adalah bagian dari Places API dan berbagi kunci API dan kuota 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 kode plus dengan benar. Artinya, Anda harus mengubah tanda plus menjadi %2B, dan Anda harus mengubah spasi menjadi %20.

  • kode global adalah kode area berisi empat karakter, dan kode lokal berisi enam karakter atau lebih. Misalnya, kode global yang di-escape URL 849VCWC8+R9 adalah 849VCWC8%2BR9.
  • kode majemuk adalah kode lokal enam karakter (atau lebih panjang) 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 disajikan kepada pengguna guna membantu mereka dalam memilih tempat yang diinginkan. Anda dapat mengirim permintaan Place Details (Lama) untuk informasi selengkapnya tentang tempat yang ditampilkan.

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

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

dengan output dapat berupa salah satu 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). 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

  • komponen

    Pengelompokan tempat yang ingin Anda batasi hasilnya. Anda dapat menggunakan komponen untuk memfilter hingga 5 negara. Negara harus diteruskan berupa kode negara dua karakter 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 di dalamnya.

    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 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 ditransliterasi ke dalam 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

    Titik di sekitar tempat informasi tempat akan diambil. 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 yang ditentukan, 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 penyesuaian alamat IP secara default.

    • IP bias: Menginstruksikan API untuk menggunakan pembobolan 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 merepresentasikan titik selatan/barat dan utara/timur dari persegi panjang. Gunakan format berikut:rectangle:south,west|north,east. Perhatikan bahwa nilai timur/barat diubah ke rentang -180, 180, dan nilai utara/selatan dibatasi ke rentang -90, 90.
  • locationrestriction

    Batasi hasil ke area tertentu, dengan menentukan radius plus lintang/bujur, atau dua pasangan lintang/bujur yang merepresentasikan 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 diubah 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 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 istilah. Offset umumnya harus ditetapkan ke posisi kursor teks.

  • asal

    Titik asal untuk menghitung jarak garis lurus ke tujuan (ditampilkan sebagai distance_meters). Jika nilai ini tidak dicantumkan, 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. 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
    • 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 "Kerajaan Bersatu Britania Raya dan Irlandia Utara").

  • sessiontoken

    String acak yang mengidentifikasi sesi pelengkapan otomatis untuk tujuan penagihan.

    Sesi dimulai saat pengguna mulai mengetik kueri, dan berakhir saat 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 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 sesi termasuk dalam project Konsol Cloud yang sama.
    • Pastikan untuk meneruskan token sesi yang unik untuk setiap sesi baru. Penggunaan token yang sama untuk lebih dari satu sesi akan menyebabkan setiap permintaan 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 agar berupa 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 jarak 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 (Legacy) 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 pada 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 struktur XML memerlukan kehati-hatian, 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 (seperti 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 establishment hasil, biasanya ini 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 pada 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. Deskripsi 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, diukur dalam karakter Unicode

required string

Teks istilah.

Pengoptimalan Place Autocomplete (Lama)

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

Berikut ini beberapa pedoman umum:

  • Cara tercepat untuk mengembangkan antarmuka pengguna yang berfungsi baik adalah dengan menggunakan widget Place Autocomplete (Legacy) Maps JavaScript API, widget Place Autocomplete (Legacy) Places SDK for Android, atau kontrol UI Place Autocomplete (Legacy) Places SDK for iOS.
  • Pahami kolom data Place Autocomplete (Legacy) 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 (Legacy), gunakan mask kolom dalam widget Place Details (Legacy) dan Place Autocomplete (Legacy) agar hanya menampilkan kolom data Place Autocomplete (Legacy) yang Anda butuhkan.

Pengoptimalan biaya lanjutan

Pertimbangkan implementasi Place Autocomplete (Legacy) secara 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 kedua 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 (Legacy) atau kurang, harga per permintaan bisa lebih hemat biaya daripada harga per sesi.
Untuk mendapatkan bantuan dalam memilih penerapan Place Autocomplete (Lama) yang sesuai dengan kebutuhan Anda, pilih tab yang sesuai dengan jawaban Anda untuk pertanyaan berikut.

Apakah aplikasi Anda memerlukan informasi selain alamat dan lintang/bujur dari prediksi yang dipilih?

Ya, memerlukan informasi lebih detail

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 (Legacy) yang Anda butuhkan.

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

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

Tidak, hanya memerlukan alamat dan lokasi

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 menjawab pertanyaan berikut, analisis rata-rata jumlah karakter yang diketik pengguna sebelum memilih prediksi Place Autocomplete (Lama) di aplikasi Anda.

Apakah pengguna Anda rata-rata memilih prediksi Place Autocomplete (Legacy) dalam empat permintaan atau kurang?

Ya

Terapkan Place Autocomplete (Legacy) 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 rendah daripada biaya Place Autocomplete (Legacy) per sesi.1

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

Tidak

Gunakan Place Autocomplete berbasis sesi (Lama) dengan Place Details (Lama).
Karena rata-rata jumlah permintaan yang Anda harapkan 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 (Lama) dan permintaan Place Details (Lama) 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 (Legacy) Anda. Saat meminta Place Details (Legacy) tentang prediksi yang dipilih, sertakan parameter berikut:

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

Pertimbangkan untuk menunda permintaan Place Autocomplete (Legacy)
Anda dapat menggunakan strategi seperti menunda permintaan Place Autocomplete (Legacy) 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-nya, total biaya yang dikenakan 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 (Legacy) 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 (Legacy) 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 (Legacy), 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 (Legacy). Jika hasil hanya diharapkan di wilayah tertentu, gunakan pembiasan lokasi.
    Skenario lain saat Anda sebaiknya beralih kembali ke Geocoding API mencakup:
    • Pengguna memasukkan alamat sub-tempat, 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

Membiaskan hasil ke area tertentu dengan meneruskan parameter location dan parameter radius. Hal ini menginstruksikan Place Autocomplete (Legacy) untuk lebih memilih menampilkan hasil dalam area yang ditentukan. Hasil di luar area yang ditentukan mungkin tetap ditampilkan. Anda dapat menggunakan parameter includedRegionCodes untuk memfilter hasil guna menampilkan hanya tempat-tempat di negara tertentu.

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