Geocoding menerjemahkan alamat menjadi lokasi di peta. Saat Anda melakukan geocoding alamat, responsnya berisi:
- ID tempat dari lokasi
- Koordinat lintang dan bujur lokasi
- Plus Code lokasi
- Detail alamat yang diperluas
Permintaan geocode
Permintaan geocode adalah permintaan HTTP GET. Anda dapat menentukan alamat sebagai string tidak terstruktur:
https://geocode.googleapis.com/v4beta/geocode/address/ADDRESS_STRING
Atau sebagai kumpulan komponen alamat terstruktur yang diwakili oleh parameter kueri:
https://geocode.googleapis.com/v4beta/geocode/address?STRUCTURED_ADDRESS
Anda biasanya menggunakan format terstruktur saat memproses komponen alamat yang diambil dalam formulir HTML.
Teruskan semua parameter lainnya sebagai parameter URL atau, untuk parameter seperti kunci API dan mask kolom, di header sebagai bagian dari permintaan GET.
Meneruskan string alamat yang tidak terstruktur
Alamat tidak terstruktur adalah alamat yang diformat sebagai string atau Plus Code. Misalnya, contoh berikut meneruskan string alamat yang dienkode URL "1600 Amphitheatre Parkway, Mountain View, CA":
https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA?key=API_KEY
Perhatikan bahwa karakter "+" dalam URL dikonversi menjadi spasi.
Anda juga dapat membuat permintaan menggunakan perintah curl:
curl -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"
Alamat dapat berisi banyak jenis karakter khusus. Misalnya, "/" seperti dalam
"7/1 King St, Concord West". Encode URL "/" sebagai %2F:
https://geocode.googleapis.com/v4beta/geocode/address/7%2F1+King+St,+Concord+West?key=API_KEY
Contoh umum lainnya adalah karakter "#", seperti dalam
"9500 W Bryn Mawr Ave #650, Rosemont". Lakukan encoding URL untuk "#" sebagai %2FE:
https://geocode.googleapis.com/v4beta/geocode/address/9500+W+Bryn+Mawr+Ave+%23650,+Rosemont?key=API_KEY
Pada contoh berikutnya, Anda menentukan string alamat tidak terstruktur sebagai
Kode Plus 849VCWC8+R4. Pastikan Anda mengenkode URL karakter "+" sebagai %2B:
https://geocode.googleapis.com/v4beta/geocode/address/849VCWC8%2BR4?key=API_KEY
Meneruskan alamat terstruktur
Tentukan alamat terstruktur menggunakan parameter kueri address, dengan jenis
PostalAddress.
Objek PostalAddress memungkinkan Anda menentukan beberapa atau semua komponen alamat dalam permintaan sebagai parameter kueri individual.
Misalnya, untuk menentukan hanya kode pos alamat yang Anda gunakan
PostalAddress.postalCode:
https://geocode.googleapis.com/v4beta/geocode/address?address.postalCode=01062&key=API_KEY
Untuk menentukan beberapa komponen alamat, seperti untuk komponen alamat yang diambil dalam formulir HTML, gunakan beberapa parameter kueri:
https://geocode.googleapis.com/v4beta/geocode/address?address.addressLines=1600+Amphithreater+Pkwy&address.locality=Mountain+View &address.administrativeArea=CA &key=API_KEY
Menggunakan OAuth untuk membuat permintaan
Geocoding API v4 mendukung OAuth 2.0 untuk autentikasi. Untuk menggunakan OAuth dengan Geocoding API, token OAuth harus diberi cakupan yang benar. Geocoding API mendukung cakupan berikut untuk digunakan dengan geocoding maju:
https://www.googleapis.com/auth/maps-platform.geocode— Gunakan dengan semua endpoint Geocoding API.https://www.googleapis.com/auth/maps-platform.geocode.address— Hanya digunakan denganGeocodeAddressuntuk geocoding maju.
Selain itu, Anda dapat menggunakan cakupan https://www.googleapis.com/auth/cloud-platform
umum untuk semua endpoint Geocoding API. Cakupan tersebut berguna selama
pengembangan, tetapi tidak untuk produksi, karena merupakan cakupan umum yang memungkinkan
akses ke semua endpoint.
Untuk informasi dan contoh selengkapnya, lihat Menggunakan OAuth.
Respons geocode
Geocoding menampilkan objek
GeocodeAddressResponse
yang berisi array results dari objek
GeocodeResult. Setiap objek GeocodeResult mewakili satu tempat.
Objek JSON lengkapnya berbentuk:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJF4Yf2Ry7j4AR__1AkytDyAE", "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE", "location": { "latitude": 37.422010799999995, "longitude": -122.08474779999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.420656719708511, "longitude": -122.08547523029148 }, "high": { "latitude": 37.4233546802915, "longitude": -122.0827772697085 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1600 Amphitheatre Pkwy" ] }, "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, ... ], "types": [ "street_address" ], "plusCode": { "globalCode": "849VCWC8+R4", "compoundCode": "CWC8+R4 Mountain View, CA, USA" } } ] }
Parameter wajib
address— Alamat jalan atau Plus Code yang ingin Anda geocode. Tentukan alamat sesuai dengan format yang digunakan oleh layanan pos nasional di negara terkait. Elemen alamat tambahan seperti nama bisnis dan nomor unit, suite, atau lantai harus dihindari. Elemen alamat jalan harus dibatasi dengan spasi berenkode URL menjadi%20. Misalnya, teruskan alamat "24 Sussex Drive Ottawa ON" sebagai: Format Plus Codes seperti yang ditunjukkan di bawah. Tanda plus dienkode URL menjadi24%20Sussex%20Drive%20Ottawa%20ON
%2Bdan spasi dienkode URL menjadi%20:- Kode global adalah kode area berisi 4 karakter dan kode lokal
berisi 6 karakter atau lebih. Misalnya, encode "849VCWC8+R9" sebagai
849VCWC8%2BR9. - Kode majemuk adalah kode lokal berisi 6 karakter atau lebih dengan
lokasi yang eksplisit. Misalnya, encode "CWC8+R9 Mountain View, CA, USA"
sebagai
CWC8%2BR9%20Mountain%20View%20CA%20USA.
- Kode global adalah kode area berisi 4 karakter dan kode lokal
berisi 6 karakter atau lebih. Misalnya, encode "849VCWC8+R9" sebagai
Parameter opsional
locationBias
Menentukan area yang akan ditelusuri sebagai
Viewport. Lokasi ini berfungsi sebagai bias yang berarti hasil di sekitar lokasi yang ditentukan dapat ditampilkan, termasuk hasil di dekat tetapi di luar area.Tentukan wilayah sebagai Viewport persegi panjang. Persegi panjang adalah area tampilan lintang-bujur, yang ditampilkan sebagai dua titik rendah dan tinggi yang berlawanan secara diagonal. Titik rendah menandai sudut barat daya persegi panjang, dan titik tinggi merepresentasikan sudut timur laut persegi panjang.
Area pandang dianggap sebagai wilayah tertutup, yang berarti mencakup batasnya. Batas lintang harus berada dalam rentang -90 hingga 90 derajat inklusif, dan batas bujur harus berada dalam rentang -180 hingga 180 derajat inklusif:
- Jika
low=high, area pandang terdiri dari satu titik tersebut. - Jika
low.longitude>high.longitude, rentang bujur terbalik (area tampilan melintasi garis bujur 180 derajat). - Jika
low.longitude= -180 derajat danhigh.longitude= 180 derajat, area pandang mencakup semua bujur. - Jika
low.longitude= 180 derajat danhigh.longitude= -180 derajat, rentang bujur kosong. - Jika
low.latitude>high.latitude, rentang lintang kosong.
Nilai rendah dan tinggi harus diisi, dan kotak yang ditampilkan tidak boleh kosong. Viewport kosong akan menyebabkan error.
Misalnya, string kueri ini menentukan area tampilan yang sepenuhnya mencakup New York City:
?locationBias.rectangle.low.latitude=40.477398
&locationBias.rectangle.low.longitude=-74.259087 &locationBias.rectangle.high.latitude=40.91618 &locationBias.rectangle.high.longitude=-73.70018 - Jika
languageCode
Bahasa yang digunakan untuk menampilkan hasil.
- Lihat daftar bahasa yang didukung. Google sering memperbarui bahasa yang didukung, sehingga daftar ini mungkin tidak lengkap.
-
Jika
languageCodetidak diberikan, API akan menggunakanensebagai default. Jika Anda menentukan kode bahasa yang tidak valid, API akan menampilkan errorINVALID_ARGUMENT. - 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 dalam skrip yang dapat dibaca oleh pengguna jika perlu, dengan memperhatikan bahasa pilihan. Semua alamat lainnya ditampilkan dalam bahasa pilihan. Semua komponen alamat 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.
regionCode
Kode wilayah sebagai nilai kode CLDR dua karakter. Tidak ada nilai default. Sebagian besar kode CLDR identik dengan kode ISO 3166-1.
Saat melakukan geocoding alamat, forward geocoding, parameter ini dapat memengaruhi, tetapi tidak sepenuhnya membatasi, hasil dari layanan ke wilayah yang ditentukan. Saat melakukan geocoding lokasi atau tempat, geocoding terbalik atau geocoding tempat, parameter ini dapat digunakan untuk memformat alamat. Dalam semua kasus, parameter ini dapat memengaruhi hasil berdasarkan hukum yang berlaku.
Penyesuaian lokasi
Gunakan parameter locationBias untuk menginstruksikan layanan Geocoding agar lebih memilih hasil dalam area pandang tertentu (dinyatakan dalam bentuk kotak pembatas).
Parameter locationBias menentukan koordinat garis lintang/bujur
sudut barat daya dan timur laut kotak pembatas ini.
Misalnya, permintaan geocode untuk alamat "Washington" dapat menampilkan hasil untuk Washington, D.C. dan untuk negara bagian Washington di Amerika Serikat:
https://geocode.googleapis.com/v4beta/geocode/address/Washington?key=API_KEY
Responsnya dalam bentuk:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJW-T2Wt7Gt4kRKl2I1CJFUsI", "placeId": "ChIJW-T2Wt7Gt4kRKl2I1CJFUsI", "location": { "latitude": 38.9071923, "longitude": -77.0368707 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 38.7916449, "longitude": -77.119759 }, "high": { "latitude": 38.9958641, "longitude": -76.909393 } }, "bounds": { "low": { "latitude": 38.7916449, "longitude": -77.119759 }, "high": { "latitude": 38.9958641, "longitude": -76.909393 } }, "formattedAddress": "Washington, DC, USA", "addressComponents": [ { "longText": "Washington", "shortText": "Washington", "types": [ "locality", "political" ], "languageCode": "en" }, ... ], "types": [ "locality", "political" ] }, { "place": "//places.googleapis.com/places/ChIJ-bDD5__lhVQRuvNfbGh4QpQ", "placeId": "ChIJ-bDD5__lhVQRuvNfbGh4QpQ", "location": { "latitude": 47.7510741, "longitude": -120.7401386 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 45.543541, "longitude": -124.84897389999999 }, "high": { "latitude": 49.0024945, "longitude": -116.91607109999998 } }, "bounds": { "low": { "latitude": 45.543541, "longitude": -124.84897389999999 }, "high": { "latitude": 49.0024442, "longitude": -116.91607109999998 } }, "formattedAddress": "Washington, USA", "addressComponents": [ { "longText": "Washington", "shortText": "WA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, ... ], "types": [ "administrative_area_level_1", "political" ] } ] }
Namun, menambahkan parameter locationBias yang menentukan kotak pembatas di sekitar bagian timur laut AS akan menghasilkan geocode ini hanya menampilkan kota Washington, D.C.:
https://geocode.googleapis.com/v4beta/geocode/address/Washington?locationBias.rectangle.low.latitude=36.47&locationBias.rectangle.low.longitude=-84.72 &locationBias.rectangle.high.latitude=43.39 &locationBias.rectangle.high.longitude=-65.90 &key=API_KEY
Pembiasan wilayah
Dalam permintaan geocoding, Anda dapat menginstruksikan layanan Geocoding untuk menampilkan hasil yang dibiaskan ke wilayah tertentu menggunakan parameter regionCode. Parameter ini menggunakan nilai
kode CLDR dua karakter yang menentukan bias wilayah. Sebagian besar kode CLDR sama dengan kode ISO 3166-1.
Tidak ada nilai default untuk regionCode. Misalnya, geocode untuk "Toledo"
menampilkan hasil untuk AS dan Spanyol:
https://geocode.googleapis.com/v4beta/geocode/address/Toledo?key=API_KEY
Respons:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJeU4e_C2HO4gRRcM6RZ_IPHw", "placeId": "ChIJeU4e_C2HO4gRRcM6RZ_IPHw", "location": { "latitude": 41.652805199999996, "longitude": -83.5378674 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 41.579513, "longitude": -83.6944089 }, "high": { "latitude": 41.733036, "longitude": -83.4493851 } }, "bounds": { "low": { "latitude": 41.579513, "longitude": -83.6944089 }, "high": { "latitude": 41.733036, "longitude": -83.4493851 } }, "formattedAddress": "Toledo, OH, USA", "addressComponents": [ { "longText": "Toledo", "shortText": "Toledo", "types": [ "locality", "political" ], "languageCode": "en" }, ... ], "types": [ "locality", "political" ] }, { "place": "//places.googleapis.com/places/ChIJkwyrlqwLag0RiQIn2fdIshM", "placeId": "ChIJkwyrlqwLag0RiQIn2fdIshM", "location": { "latitude": 39.8628296, "longitude": -4.0273067 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 39.8116682, "longitude": -4.179933 }, "high": { "latitude": 39.9251319, "longitude": -3.8148935 } }, "bounds": { "low": { "latitude": 39.8116682, "longitude": -4.179933 }, "high": { "latitude": 39.9251319, "longitude": -3.8148935 } }, "formattedAddress": "Toledo, España", "addressComponents": [ { "longText": "Toledo", "shortText": "Toledo", "types": [ "administrative_area_level_4", "political" ], "languageCode": "es" }, ... ], "types": [ "administrative_area_level_4", "political" ] }, ... ] }
Permintaan geocoding untuk "Toledo" dengan regionCode=es (Spanyol) hanya menampilkan hasil dari Spanyol:
https://geocode.googleapis.com/v4beta/geocode/address/Toledo?regionCode=es&key=API_KEY