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+R9adalah849VCWC8%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, USAadalahCWC8%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)xmlmenunjukkan 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:frakan membatasi hasil Anda ke tempat-tempat di Prancis. Beberapa negara harus diteruskan sebagai beberapa filtercountry:XX, dengan karakter pipa|sebagai pemisah. Misalnya:components=country:us|country:pr|country:vi|country:gu|country:mpakan 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
languagetidak diberikan, API akan mencoba menggunakan bahasa pilihan seperti yang ditentukan dalam headerAccept-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. Parameterradiusjuga harus diberikan saat menentukan lokasi. Jikaradiustidak diberikan, parameterlocationakan 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.
-
IP bias: Menginstruksikan API untuk menggunakan pembobolan alamat IP. Teruskan string
-
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.
-
Lingkaran: String yang menentukan radius dalam meter, ditambah lintang/bujur dalam derajat
desimal. Gunakan format berikut:
-
offset
Posisi, dalam istilah input, karakter terakhir yang digunakan layanan untuk mencocokkan prediksi. Misalnya, jika inputnya adalah
Googledan offsetnya adalah 3, layanan akan mencocokkanGoo. String yang ditentukan oleh offset dicocokkan dengan hanya kata pertama dalam istilah input. Misalnya, jika istilah inputnya adalahGoogle abcdan offsetnya adalah 3, layanan akan mencoba mencocokkan denganGoo 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 sebagailatitude,longitude. -
radius
Menentukan jarak (dalam meter) untuk menampilkan hasil tempat. Anda dapat membiaskan hasil ke lingkaran yang ditentukan dengan meneruskan parameter
locationdanradius. 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
keywordatauname: 50.000 meter -
tanpa
keywordatauname-
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 menghasilkanINVALID_REQUEST.
-
Hingga 50.000 meter, disesuaikan secara dinamis berdasarkan kepadatan area,
terlepas dari parameter
- dengan
- 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
sessiontokendihilangkan, 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
locationdanradius. 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=lodgingdan bukan dengantypes=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_REQUESTjika: -
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
|
|
opsional | Array<string> |
Jika layanan menampilkan informasi tambahan tentang spesifikasi permintaan, mungkin ada kolom |
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.
OKyang menunjukkan bahwa permintaan API berhasil.-
ZERO_RESULTSyang menunjukkan bahwa penelusuran berhasil, tetapi tidak menampilkan hasil. Hal ini dapat terjadi jika penelusuran diteruskan ke batas di lokasi terpencil. -
INVALID_REQUESTyang menunjukkan bahwa permintaan API memiliki format yang salah, biasanya karena parameterinputtidak ada. -
OVER_QUERY_LIMITyang 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).
-
REQUEST_DENIEDyang menunjukkan bahwa permintaan Anda ditolak, biasanya karena:- Permintaan tidak memiliki kunci API.
- Parameter
keytidak valid.
UNKNOWN_ERRORmenunjukkan 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
|
|
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 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 |
|
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:
|
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 Lihat PlaceAutocompleteMatchedSubstring untuk mengetahui informasi selengkapnya. |
|
opsional | string |
Berisi teks sekunder prediksi, biasanya lokasi tempat. |
|
opsional | Array<PlaceAutocompleteMatchedSubstring> |
Berisi array dengan nilai 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.
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:
- ID tempat dari respons Place Autocomplete (Legacy)
- Token sesi yang digunakan dalam permintaan Place Autocomplete (Legacy)
- Parameter
fieldsyang 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:
- ID tempat dari respons Place Autocomplete (Legacy)
- Token sesi yang digunakan dalam permintaan Place Autocomplete (Legacy)
- Parameter
fieldsyang 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.
-
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.
- 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.