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

  1. akun google drive

membuat dokumen baru

  1. buka google drive anda
  2. buat dokumen spreasheet baru
  3. 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

membuat app script function

  1. pada menu ekstensi, pilih app script
  2. selanjutya akan terbuka apps script pada tab baru,
    • silahkan anda mengganti nama file app script yang akan tersimpan di drive kita nantinya
  3. 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;
}
  1. simpan app script
  2. nilai yang di return berdasarkan data json.results yang didapatkan dari api maps
    • anda dapat memilih nilai lain dari json results tersebut, yang kita gunakan cuman:
      • results.geometry.location.lng
      • results.geometry.location.lat
      • results.formatted_address
    • referensi : https://developers.google.com/maps/documentation/geocoding/requests-reverse-geocoding
{
   "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

  1. kembali ke tab spreasheet
  2. 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

  1. 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

  1. 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.
  2. 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

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Index