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+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 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)xmlmenunjukkan 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: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. -
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
languagetidak diberikan, API akan mencoba menggunakan bahasa pilihan seperti yang ditentukan dalam headerAccept-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. Parameterradiusjuga harus diberikan saat menentukan lokasi. Jikaradiustidak diberikan, parameterlocationdiabaikan.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.
-
Bias IP: Memerintahkan API untuk menggunakan bias 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 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.
-
Lingkaran: String yang menentukan radius dalam meter, ditambah lintang/bujur dalam derajat
desimal. Gunakan format berikut:
-
offset
Posisi, dalam istilah input, dari 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 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 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
- 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
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. 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
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 hanya dapat ditampilkan dengan
types=lodging, 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 font.
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 |
|---|---|---|---|
|
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
|
|
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 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.
OKyang menunjukkan bahwa permintaan API berhasil.-
ZERO_RESULTSyang menunjukkan bahwa penelusuran berhasil, tetapi tidak menampilkan hasil. Hal ini dapat terjadi jika penelusuran meneruskan batas di lokasi terpencil. -
INVALID_REQUESTyang menunjukkan bahwa permintaan API memiliki format yang salah, biasanya karena parameterinputtidak ada. -
OVER_QUERY_LIMITyang 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).
-
REQUEST_DENIEDyang menunjukkan bahwa permintaan Anda ditolak, biasanya karena:- Permintaan tidak berisi kunci API.
- Parameter
keytidak valid.
UNKNOWN_ERRORmenunjukkan 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
|
|
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 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 |
|
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:
|
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 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 |
|---|---|---|---|
|
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.
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:
- ID tempat dari respons Place Autocomplete (Lama)
- 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 (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:
- ID tempat dari respons Place Autocomplete (Lama)
- 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.
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.