Istilah geocoding umumnya mengacu pada terjemahan alamat yang bisa dibaca orang menjadi lokasi pada peta. Proses menerjemahkan terbalik suatu lokasi peta menjadi alamat yang bisa dibaca orang dikenal sebagai geocoding terbalik.
Membalik permintaan geocoding
Parameter wajib
latlng
— Koordinat lintang dan bujur yang menentukan lokasi yang Anda inginkan untuk alamat terdekat yang dapat dibaca orang.key
— Kunci API aplikasi Anda. Kunci ini mengidentifikasi aplikasi Anda untuk tujuan pengelolaan kuota. Pelajari cara mendapatkan kunci.
Parameter opsional
Berikut adalah parameter opsional yang dapat Anda sertakan dalam permintaan geocoding terbalik:
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 disediakan, geocoder akan mencoba menggunakan bahasa yang dipilih seperti yang ditentukan dalam headerAccept-Language
, atau bahasa asli domain tempat permintaan dikirim. - Geocoder akan berupaya sebaik mungkin untuk menyediakan alamat yang bisa dibaca oleh pengguna dan penduduk setempat. Untuk mencapai tujuan tersebut, metode akan menampilkan alamat dalam bahasa lokal, yang ditransliterasi menjadi skrip yang dapat dibaca oleh pengguna jika perlu, dengan mengamati bahasa yang dipilih. Semua alamat lainnya dikembalikan dalam bahasa yang diinginkan. Semua komponen alamat dikembalikan dalam bahasa yang sama, yang dipilih dari komponen pertama.
- Jika nama tidak tersedia dalam bahasa yang dipilih, geocoder akan menggunakan pencocokan terdekat.
result_type
— Filter dari satu atau beberapa jenis alamat, dipisahkan dengan pipa (|
). Jika parameter berisi beberapa jenis alamat, API akan menampilkan semua alamat yang cocok dengan salah satu jenis alamat. Catatan tentang pemrosesan: Parameterresult_type
tidak membatasi penelusuran ke jenis alamat yang ditentukan. Namun,result_type
bertindak sebagai filter pasca-penelusuran: API mengambil semua hasil untuklatlng
yang ditentukan, lalu menghapus hasil tersebut yang tidak cocok dengan jenis alamat yang ditentukan. Nilai-nilai berikut didukung:street_address
menunjukkan alamat yang akurat.route
menunjukkan rute yang telah diberi nama (seperti "US 101").intersection
menunjukkan persimpangan utama, biasanya persimpangan dua jalan utama.political
menunjukkan entitas politik. Biasanya, jenis ini menunjukkan poligon dari pemerintahan sipil tertentu.country
menunjukkan entitas politik nasional, dan biasanya merupakan jenis urutan tertinggi yang dikembalikan oleh Geocoder.administrative_area_level_1
menunjukkan entitas sipil urutan pertama di bawah tingkat negara. Di Amerika Serikat, tingkat administratif ini adalah negara bagian. Tidak semua negara memiliki tingkat administratif ini. Di hampir semua kasus, nama pendek administrative_area_level_1 akan hampir cocok dengan subdivisi ISO 3166-2 dan daftar lainnya yang beredar luas; akan tetapi, hal ini bukan jaminan karena hasil geocoding kami didasarkan pada aneka macam sinyal dan data lokasi.administrative_area_level_2
menunjukkan entitas sipil urutan kedua di bawah tingkat negara. Di Amerika Serikat, tingkat administratif ini adalah county. Tidak semua negara memiliki tingkat administratif ini.administrative_area_level_3
menunjukkan entitas sipil urutan ketiga di bawah tingkat negara. Jenis ini menunjukkan divisi sipil kecil. Tidak semua negara memiliki tingkat administratif ini.administrative_area_level_4
menunjukkan entitas sipil urutan keempat di bawah tingkat negara. Jenis ini menunjukkan divisi sipil kecil. Tidak semua negara memiliki tingkat administratif ini.administrative_area_level_5
menunjukkan entitas sipil urutan kelima di bawah tingkat negara. Jenis ini menunjukkan divisi sipil kecil. Tidak semua negara memiliki tingkat administratif ini.administrative_area_level_6
menunjukkan entitas sipil urutan keenam di bawah tingkat negara. Jenis ini menunjukkan divisi sipil kecil. Tidak semua negara memiliki tingkat administratif ini.administrative_area_level_7
menunjukkan entitas sipil urutan ketujuh di bawah tingkat negara. Jenis ini menunjukkan divisi sipil kecil. Tidak semua negara memiliki tingkat administratif ini.colloquial_area
menunjukkan nama alternatif yang biasa digunakan untuk entitas.locality
menunjukkan gabungan entitas politik kota besar atau kota kecil.sublocality
menunjukkan entitas sipil urutan pertama di bawah lokalitas. Beberapa lokasi dapat menerima salah satu dari jenis tambahan:sublocality_level_1
hinggasublocality_level_5
. Setiap tingkat sublokalitas adalah entitas sipil. Angka yang lebih besar menunjukkan area geografis yang lebih kecil.neighborhood
menunjukkan daerah sekitar yang telah diberi namapremise
menunjukkan lokasi yang telah diberi nama, biasanya bangunan atau sekumpulan bangunan dengan nama umumsubpremise
menunjukkan entitas urutan pertama di bawah lokasi yang telah diberi nama, biasanya sebuah bangunan dalam sekumpulan bangunan dengan nama umumplus_code
menunjukkan referensi lokasi yang dienkode, yang berasal dari lintang dan bujur. Plus Codes dapat digunakan sebagai pengganti alamat di tempat tanpa alamat jelas (jika bangunan tidak diberi nomor atau jalan tidak diberi nama). Lihat https://plus.codes untuk mengetahui detailnya.postal_code
menunjukkan kode pos seperti yang biasa digunakan untuk penulisan alamat pos dalam negara tersebut.natural_feature
menunjukkan fitur alam terkemuka.airport
menunjukkan bandara.park
menunjukkan taman yang telah diberi nama.point_of_interest
menunjukkan lokasi menarik yang telah diberi nama. Biasanya, "POI" ini adalah entitas lokal terkenal yang tidak mudah dimasukkan dalam kategori lain, seperti "Empire State Building" atau "Eiffel Tower".
location_type
— Filter dari satu atau beberapa jenis lokasi, dipisahkan dengan pipa (|
). Jika parameter berisi beberapa jenis lokasi, API akan menampilkan semua alamat yang cocok dengan jenis tersebut. Catatan tentang pemrosesan: Parameterlocation_type
tidak membatasi penelusuran ke jenis lokasi yang ditentukan. Sebaliknya,location_type
berfungsi sebagai filter pasca-penelusuran: API mengambil semua hasil untuklatlng
yang ditentukan, lalu menghapus hasil tersebut yang tidak cocok dengan jenis lokasi yang ditentukan. Nilai-nilai berikut ini didukung:"ROOFTOP"
hanya menampilkan alamat dengan informasi lokasi Google yang akurat hingga presisi alamat."RANGE_INTERPOLATED"
hanya mengembalikan alamat yang mencerminkan perkiraan (biasanya di jalan) interpolasi antara dua titik tepat (seperti persimpangan). Rentang interpolasi umumnya menunjukkan geocode rooftop tidak tersedia untuk alamat jalan."GEOMETRIC_CENTER"
hanya menampilkan pusat geometris lokasi seperti polyline (misalnya, jalan) atau poligon (wilayah)."APPROXIMATE"
hanya menampilkan alamat yang ditandai sebagai perkiraan.
Jika filter result_type
dan location_type
ada, API
hanya akan menampilkan hasil yang cocok dengan nilai result_type
dan
location_type
. Jika tidak ada nilai filter yang dapat diterima, API akan menampilkan ZERO_RESULTS
.
Contoh geocoding terbalik
Kueri berikut berisi nilai garis lintang/garis bujur untuk lokasi di Brooklyn:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
Kueri di atas mengembalikan hasil berikut:
{
"results" : [
{
"address_components" : [
{
"long_name" : "277",
"short_name" : "277",
"types" : [ "street_number" ]
},
{
"long_name" : "Bedford Avenue",
"short_name" : "Bedford Ave",
"types" : [ "route" ]
},
{
"long_name" : "Williamsburg",
"short_name" : "Williamsburg",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Brooklyn",
"short_name" : "Brooklyn",
"types" : [ "sublocality", "political" ]
},
{
"long_name" : "Kings",
"short_name" : "Kings",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "11211",
"short_name" : "11211",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
"geometry" : {
"location" : {
"lat" : 40.714232,
"lng" : -73.9612889
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 40.7155809802915,
"lng" : -73.9599399197085
},
"southwest" : {
"lat" : 40.7128830197085,
"lng" : -73.96263788029151
}
}
},
"place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
"types" : [ "street_address" ]
},
... Additional <code>results[]</code> ...
Perhatikan, geocoder terbalik akan mengembalikan lebih dari satu hasil. Hasil
"formatted_address"
bukan hanya alamat pos, tetapi
cara apa pun untuk memberi nama lokasi secara geografis. Misalnya, saat geocoding titik di kota Chicago, titik yang diberi geocode bisa dinyatakan sebagai alamat jalan, sebagai kota (Chicago), sebagai negara bagian (Illinois) atau sebagai negara (Amerika Serikat). Semua adalah "alamat" untuk geocoder tersebut. Geocoder terbalik akan mengembalikan semua jenis ini sebagai hasil yang valid.
Geocoder terbalik akan mencocokkan entitas politik (negara, provinsi, kota dan lingkungan), alamat jalan, dan kode pos.
Daftar lengkap nilai formatted_address
yang ditampilkan oleh
kueri sebelumnya ditampilkan di bawah ini.
{
"plus_code" : {
"compound_code" : "P27Q+MCM New York, NY, USA",
"global_code" : "87G8P27Q+MCM"
},
"results" : [
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "street_address" ]
},
{
"formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "premise" ]
},
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "establishment", "point_of_interest" ]
},
{
"formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "route" ]
},
{
"formatted_address" : "P27Q+MC New York, NY, USA",
...
"types" : [ "plus_code" ]
},
{
"formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Brooklyn, NY 11211, USA",
...
"types" : [ "postal_code" ]
},
{
"formatted_address" : "Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Kings County, Brooklyn, NY, USA",
...
"types" : [ "administrative_area_level_2", "political" ]
},
{
"formatted_address" : "Brooklyn, NY, USA",
...
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"formatted_address" : "New York, NY, USA",
...
"types" : [ "locality", "political" ]
},
{
"formatted_address" : "New York, USA",
...
"types" : [ "administrative_area_level_1", "political" ]
},
{
"formatted_address" : "United States",
...
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}
API ini mengembalikan berbagai jenis alamat, dari alamat yang paling spesifik hingga entitas politik yang kurang spesifik seperti lingkungan, kota, wilayah, dan negara bagian. Alamat yang lebih persis biasanya merupakan hasil yang paling terlihat, seperti dalam kasus ini. Jika ingin mencocokkan jenis alamat tertentu, lihat bagian di bawah tentang membatasi hasil menurut jenis. Karena itu, lokasi hasil yang relatif terhadap satu sama lain dapat bervariasi.
Geocoding terbalik difilter menurut jenis
Contoh berikut memfilter alamat yang ditampilkan untuk hanya menyertakan alamat dengan jenis lokasi ROOFTOP
dan jenis alamat street_address
.
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY
Catatan: Filter ini hanya valid untuk geocoding terbalik.
Respons geocoding terbalik
Format respons geocoding terbalik sama dengan respons Geocoding. Lihat respons Geocoding. Di bawah ini adalah kode status yang mungkin dalam respons geocoding terbalik.
Kode status geocoding terbalik
Kolom "status"
dalam objek respons Geocoding berisi
status permintaan, dan mungkin berisi informasi proses debug untuk membantu Anda
melacak alasan geocoding terbalik tidak berfungsi. Kolom "status"
dapat berisi nilai-nilai berikut:
"OK"
menunjukkan bahwa tidak ada error yang terjadi dan setidaknya satu alamat ditampilkan."ZERO_RESULTS"
menunjukkan bahwa geocoding terbalik berhasil tetapi tidak menampilkan hasil. Hal ini dapat terjadi jika pada geocoder diteruskanlatlng
di lokasi terpencil."OVER_QUERY_LIMIT"
menunjukkan bahwa Anda melebihi kuota."REQUEST_DENIED"
menunjukkan bahwa permintaan ditolak. Mungkin karena permintaan menyertakan parameterresult_type
ataulocation_type
, tetapi tidak menyertakan kunci API."INVALID_REQUEST"
secara umum menunjukkan salah satu hal berikut:- Kueri (
address
,components
, ataulatlng
) tidak ada. result_type
ataulocation_type
yang tidak valid diberikan.
- Kueri (
"UNKNOWN_ERROR"
menunjukkan permintaan tidak bisa diproses karena error server. Permintaan mungkin berhasil jika Anda mencoba lagi.
Geocoding terbalik plus kode
Kolom plus_code
dalam respons Geocoding berisi kode plus yang paling mendekati perkiraan lintang dan bujur yang dikueri.
Selain itu, array hasil JSON dalam banyak kasus berisi hasil Geocoding lengkap dengan jenis plus_code
dan alamat yang berisi kode plus. Jarak antara plus kode plus dan titik permintaan dijamin di bawah 10 meter.