Ikuti artikel ini dan bangun alat geografis Anda sendiri yang dengannya Anda bisa mendapatkan koordinat lintang dan bujur untuk sebuah alamat. Pengonversi seperti ini biasanya digunakan oleh pialang real estat.
Unduh Sekarang
Jika Anda ingin mulai menggunakan perangkat lunak sesegera mungkin, Anda dapat melakukan hal berikut:
Unduh Perangkat Lunak Sekarang
Kalau tidak, kalau mau DIY bisa baca isinya di bawah ini.
Mari persiapkan GUI
Yang Anda butuhkan hanyalah satu lembar Excel dan Anda dapat memberi nama lembar tersebut sesuai kebutuhan. Dalam contoh ini, saya menggunakan nama lembar default "Sheet1". Langkah selanjutnya adalah menambahkan header yang diperlukan pada lembar ini. Konverter lintang dan bujur memberikan hasil yang akurat untuk alamat yang kita masukkan jika input mencakup daerah, negara bagian, kode pos, dan negara. Seperti yang ditunjukkan pada gambar, siapkan header. Mari kita tambahkan Lintang dan Bujur sebagai dua kolom terakhir. Kita juga membutuhkan tombol untuk memungkinkan pengguna melakukan konversi. Jadi, mari kita sisipkan Shape dan isi dengan warna agar terlihat seperti tombol.
Mari kita membuatnya berfungsi
Skrip yang disediakan di sini harus disalin ke modul baru. Jangan lupa untuk menyimpan buku kerja Anda sebagai file buku kerja berkemampuan makro. Sub "FindThis" harus dilampirkan ke tombol yang baru saja kita buat.
Mari kita uji
Tambahkan alamat beserta informasi lainnya ke kolom yang sesuai. Klik tombol untuk menjalankan makro yang akan menampilkan koordinat lintang dan bujur untuk semua alamat yang tercantum di lembar kerja. Makro akan dimulai dari baris 2 dan akan terus berjalan hingga mencapai baris kosong.
Bagaimana cara kerjanya?
Dengan script tersebut kita telah membuat dua fungsi. Satu untuk mengambil nilai Lat dan satu lagi untuk mengambil nilai Long. Dengan menggunakan loop FOR, kami meneruskan setiap alamat ke fungsi-fungsi ini dan menampilkan hasilnya di layar.
Naskah
Function GETLAT(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LAT>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LAT>")
GETLAT = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Function GETLNG(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LNG>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LNG>")
GETLNG = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Sub FindThis()
For r = 2 To 5
Range("F" & r).Value = GETLAT(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Range("G" & r).Value = GETLNG(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Next r
End Sub
Jika Anda tidak menerima hasil yang sesuai menggunakan skrip, excel yang rusak mungkin menjadi alasan yang mungkin. Anda kemudian dapat menggunakan Alat pemulihan file Excel seperti DataNumen Excel Repair untuk memperbaiki Excel.
Pengantar Penulis:
Nick Vipond adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memperbaiki masalah doc dan produk perangkat lunak pemulihan prospek. Untuk informasi lebih lanjut kunjungi www.datanumen.com
