Place Autocomplete (Lama)

Developer Wilayah Ekonomi Eropa (EEA)

Place Autocomplete (Lama) adalah layanan web yang menampilkan prediksi tempat sebagai respons terhadap permintaan HTTP. Permintaan 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 (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 melakukan escape pada tanda plus menjadi %2B, dan Anda harus melakukan escape pada spasi menjadi %20.

  • kode global adalah kode area empat karakter, dan kode lokal 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 mereka inginkan. Anda dapat mengirim permintaan Place Details (Lama) untuk informasi selengkapnya tentang tempat yang ditampilkan.

Permintaan Place Autocomplete (Legacy) adalah URL HTTP dengan bentuk 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 (Legacy). 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 gunakan untuk membatasi hasil. 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 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.
  • language

    Bahasa yang digunakan untuk menampilkan hasil.

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

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

    Saat menggunakan Text Search API, parameter `location` dapat diganti jika `query` berisi lokasi eksplisit seperti `Pasar di Barcelona`.
  • locationbias

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

    • Bias IP: Memerintahkan API untuk menggunakan bias 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 di-wrap ke rentang -180, 180, dan nilai utara/selatan di-clamp 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 merepresentasikan titik selatan/barat dan utara/timur dari persegi panjang. Gunakan format berikut:rectangle:south,west|north,east. Perhatikan bahwa nilai timur/barat di-wrap ke rentang -180, 180, dan nilai utara/selatan di-clamp ke rentang -90, 90.
  • offset

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

  • asal

    Titik asal untuk menghitung jarak garis lurus ke tujuan (ditampilkan sebagai distance_meters). Jika nilai ini tidak disertakan, 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
    • Penelusuran Teks: 50.000 meter
  • region

    Kode wilayah, yang ditentukan 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 "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 mereka 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. Menggunakan 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 hanya dapat ditampilkan dengan types=lodging, 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 font.

    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
wajib ada Array<PlaceAutocompletePrediction>

Berisi array prediksi.

Lihat PlaceAutocompletePrediction untuk mengetahui informasi selengkapnya.

wajib ada PlacesAutocompleteStatus

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

Lihat PlacesAutocompleteStatus untuk mengetahui informasi selengkapnya.

opsional string

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

opsional Array<string>

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

Yang menarik dalam hasil adalah elemen place_id, yang dapat digunakan untuk meminta detail yang lebih spesifik tentang tempat 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 informasi tentang hasil ini. Places API menampilkan hingga 5 hasil.

Sebaiknya gunakan json sebagai tanda output pilihan kecuali jika aplikasi Anda memerlukan xml karena alasan tertentu. Pemrosesan struktur XML memerlukan kehati-hatian agar 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 meneruskan batas di lokasi terpencil.
  • INVALID_REQUEST yang menunjukkan bahwa permintaan API memiliki format yang salah, biasanya karena parameter input tidak ada.
  • OVER_QUERY_LIMIT yang menunjukkan salah satu dari berikut ini:
    • Anda telah melampaui batas QPS.
    • Penagihan belum diaktifkan di akun Anda.
    • Kredit bulanan sebesar $200, atau batas penggunaan yang ditentukan sendiri, telah terlampaui.
    • Metode pembayaran yang diberikan sudah tidak valid (misalnya, kartu kredit yang sudah tidak berlaku).
    Lihat FAQ Maps untuk mengetahui informasi selengkapnya tentang cara mengatasi error ini.
  • REQUEST_DENIED yang menunjukkan bahwa permintaan Anda ditolak, biasanya karena:
    • Permintaan tidak berisi kunci API.
    • Parameter key tidak valid.
  • UNKNOWN_ERROR menunjukkan error yang tidak diketahui.

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

PlaceAutocompletePrediction

Kolom Wajib Jenis Deskripsi
wajib ada string

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

wajib ada Array<PlaceAutocompleteMatchedSubstring>

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

Lihat PlaceAutocompleteMatchedSubstring untuk mengetahui informasi selengkapnya.

wajib ada PlaceAutocompleteStructuredFormat

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

Lihat PlaceAutocompleteStructuredFormat untuk mengetahui informasi selengkapnya.

wajib ada Array<PlaceAutocompleteTerm>

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

Lihat PlaceAutocompleteTerm untuk mengetahui informasi selengkapnya.

opsional bilangan bulat

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

opsional string

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

opsional string

Lihat place_id.

opsional Array<string>

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

PlaceAutocompleteMatchedSubstring

Kolom Wajib Jenis Deskripsi
wajib ada angka

Panjang substring yang cocok dalam teks hasil prediksi.

wajib ada angka

Lokasi awal substring yang cocok dalam hasil prediksi teks.

PlaceAutocompleteStructuredFormat

Kolom Wajib Jenis Deskripsi
wajib ada string

Berisi teks utama prediksi, biasanya nama tempat.

wajib ada Array<PlaceAutocompleteMatchedSubstring>

Berisi array dengan nilai offset dan length. Objek ini menjelaskan lokasi istilah yang dimasukkan dalam teks hasil prediksi, sehingga istilah tersebut dapat ditandai jika 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. Objek 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
wajib ada angka

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

wajib ada 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 mengembangkan antarmuka pengguna yang berfungsi baik adalah dengan menggunakan widget Pelengkapan Otomatis Tempat (Lama) Maps JavaScript API, widget Pelengkapan Otomatis Tempat (Lama) Places SDK for Android, atau kontrol UI Pelengkapan Otomatis Tempat (Lama) 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 di 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 (Lama) yang terprogram untuk mengakses SKU: Harga Autocomplete - Per Request dan meminta hasil Geocoding API tentang tempat yang dipilih, bukan Place Details (Lama). 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/bujur atau alamat tempat yang dipilih pengguna, Geocoding API akan mengirimkan informasi ini dengan biaya yang lebih murah daripada panggilan Place Details (Legacy).
  • Jika pengguna memilih prediksi pelengkapan otomatis dalam rata-rata empat permintaan prediksi Place Autocomplete (Lama) atau kurang, harga per permintaan mungkin 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 berbasis sesi (Lama) dengan Place Details (Lama).
Karena aplikasi Anda memerlukan Place Details (Lama), seperti nama tempat, status bisnis, atau jam buka, penerapan Place Autocomplete (Lama) Anda harus menggunakan token sesi (secara terprogram atau disertakan dalam widget JavaScript, Android, atau iOS) per sesi plus SKU Data Tempat 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 (Legacy) Anda. Saat meminta Place Details (Legacy) tentang prediksi yang dipilih, sertakan parameter berikut:

  1. ID tempat dari respons Place Autocomplete (Lama)
  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 (Legacy) 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 (Legacy) 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 Permintaan ditambah panggilan Geocoding API tentang prediksi tempat yang dipilih lebih rendah daripada biaya Place Autocomplete (Lama) 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 (Legacy) melebihi biaya harga per sesi, penerapan Place Autocomplete (Legacy) Anda harus menggunakan token sesi untuk permintaan Place Autocomplete (Legacy) dan permintaan Place Details (Legacy) 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 (Legacy) Anda. Saat meminta Place Details (Legacy) tentang prediksi yang dipilih, sertakan parameter berikut:

  1. ID tempat dari respons Place Autocomplete (Lama)
  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.

Penyesuaian 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 tertentu dengan meneruskan parameter locationRestriction.

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