tutorial
Geocoding & Reverse Geocoding dengan Maps API di Google Sheet
tujuan dari tutorial adalah untuk memperoleh data longitude dan latitude dari data alamat ataupun sebaliknya untuk mendapatkan alamat dari data longitude dan latitude
persiapan
- akun google drive
membuat dokumen baru
- buka google drive anda
- buat dokumen spreasheet baru
- untuk memastikan bahwa seperator atau pemisah yang digunakan adalah koma (,) bukan titik koma (;) agar saat implementasi fungsi app script yang membutuhkan 2 variabel input dari kolom tidak error.
- pada menu file -> setelan atau settings
- ubah lokasi menjadi amerika atau us
- pada menu file -> setelan atau settings
membuat app script function
- pada menu ekstensi, pilih app script
- selanjutya akan terbuka apps script pada tab baru,
- silahkan anda mengganti nama file app script yang akan tersimpan di drive kita nantinya

- selanjutnya masukkan kode berikut
function ubahGeocode(alamat) {
var jsn = Maps.newGeocoder().geocode(alamat)
for (var i=0; i< jsn.results.length; i++){
var res = jsn.results[i];
return res.geometry.location.lat + " " + res.geometry.location.lng
}
}
function getAlamat(lat,long){
var jsn = Maps.newGeocoder().reverseGeocode(lat,long)
return jsn.results[0].formatted_address;
}- simpan app script
- nilai yang di return berdasarkan data json.results yang didapatkan dari api maps
{
"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" ]
},uji coba
geocode
- kembali ke tab spreasheet
- masukkan alamat dan rumus
=ubahGeocode()sesuai nama fungsi yang sebelumnya kita buat di app script
- kita berhasil mendapatkan lat long pada kolom B2 dari input alamat A2
reverse geocode
- masukkan latitude dan longitude dan rumus
=getAlamat()sesuai nama fungsi yang sebelumnya kita buat di app script
- kita berhasil mendapatkan alamat bahkan lebih lengkap walaupun tidak spesifik lapangan karebosi
- alamat yang didapatkan sesuai dengan yang terdaftar di google maps
bad request app script
- saat mencoba membuka tab baru app script kita mendapatkan error bad request

- ini diakibatkan anda mencoba membuka app script di akun google yang berbeda dengan akun google spreadsheet.
- jika anda menggunakan google chrome pastikan akun google chrome browser anda sama dengan akun spreadsheet yang digunakan
ref:
- https://www.youtube.com/watch?v=35M9O4XFx7c










