5 Menit Bisa Membuat Aplikasi Gis Desktop
Akan dibuat applikasi GIS desktop sederhana yakni GIS Kota Bandung. Applikasi ini dibuat dengan menggunakan MapInfo Professional 8.0, Ms. Visual Basic untuk perancangan User Interfacenya dan MapBasic sebagai interface antara MapInfo dan Visual Basic. Disini MapBasic berfungsi sebagai DDE (Dynamic Data Exchange).DDE adalah interprocess communication method untuk OS (Operating System) Windows yang berisi passing data antara proses dan sinkronisasi event. DDE menggunakan shared memory untuk mengubah data anatara applikasi dan protokol untuk melakukan sinkronisasi passing data. Peta yangdigunakan adalah peta Kota Bandung dapat segera di download disini.
Tool yang juga digunakan oleh kedua aplikasi yaitu file info.mbx yang merupakan aplikasi dari mapbasic. Cara membuat file info.mbx :
Buka Map Basic, kemudian klik File > New
Ketikkan source code seperti pada tabel -1 berikut kedalam file
Simpan dengan nama info.mb, kemudian klik File > Compile from file sehingga didapatkan file info.mbx
Lalu lakukan langkah berikut :
- Buka Visual Basic. Buat form baru yang akan kita gunakan sebagai form utama. Isi property dari form sebagai berikut :
- Letakan PictureBox pada daerah yang akan kita letakan workspace dari MapInfo, set property yang sesuai beri nama mapframe
- Letakan tombol-tombol sesuai dengan kebutuhan aplikasi GIS yang kita buat, set propertinya dengan yang sesuai.
- Klik dua kali form lalu ketikan program berikut : Keterangan :
Inisialisasi lingkungan peta
Langkah pertama dalam pembuatan aplikasi GIS ini adalah menghubungkan dengan Program MapInfo. Perintah CreateObject() digunakan untuk memasukan MapInfo ke background Visual Basic ketika Mapinfo belum dibuka.
Set mapinfo = CreateObject(“MapInfo.Application”)
Jika Mapinfo sudah dibuka ( dan belum dimasukan dengan perintah CreateObject) kita harus menggunakan perintah berikut :
Set mapinfo = GetObject(, “MapInfo.Application”)
Mengirimkan perintah ke MapInfo
Ketika MapInfo sudah terinisialisasi kita sudah siap untuk mengirimkan perintah ke MapInfo. Pekerjaan ini dengan menggunakan syntak yang ada di MapBasic dikirimkan ke MapInfo melalui OLE dengan menggunkan metode Do, sebagai contoh untuk membuka workspace diaplikasi ini kita gunakan :
Szstr = “Run Application “”bandung.wor””
Mapinfo.do szstr
Atau dengan menggunakan :
Mapinfo.do “Run Application “”bandung.wor”””
Perintah lain dari MapInfo yang meminta nilai adalah dengan perintah Eval. Sebagai contoh untuk mendapatkan window ID dari front active Window Mapinfo :
Szstr = mapinfo.eval(“FrontWindow()”)
Reparenting MapInfo Windows
Reparenting adalah masalah yang penting untuk bisa menampilkan MapInfo di aplikasi Visual Basic. Ketika window di reparent maka Mapinfo menjadi child windows dari aplikasi Visual Basic. Perintah dibawah ini berarti dialog box Mapinfo dan pesan kesalahan menjadi tanggung jawab program gabungan (integrated mapping)
Mapinfo.do “set application window” & MapViewform.hwnd
Dalam pengesetam diatas , mapviewform adalah nama dari form utama dari aplikasi visual basic (VB). Semua window MapInfo juga harus di reparented jika kita ingin memasukan kedalam penggunaan di aplikasi VB. Nama window dari MapInfo yang mungkin untuk digunakan program aplikasi adalah : MapBasic, Help, Statistics, Legend, Info, Ruler, Message. Sebagai contoh untuk me-reparent ruler window :
Mapinfo.do “set Window ruler parent “ & Mapviewform.hwnd
Menggunakan tombol toolbar
Tombol MapInfo dapat direparent. Untuk membuat fungsi dari tombol MapInfo di program aplikasi dengan menggunakan perintah seperti dibawah ini :
Private Sub ZoomIn_Click()
mapinfo.RunMenuCommand 1705
End Sub
1705 adalah nomor dari tool zoom in di mapbasic.bas . Kita dapat menggunakan fungsi yang lain yang tersedia di menu.def, icons.def, mapbasic.def
1. Klik dua kali tombol geser layar, isikan kode berikut
mapinfo.runmenucommand 1702
2. Klik dua kali tombol Kursor panah, isikan kode berikut
mapinfo.runmenucommand 1701
3. Klik dua kali tombol zoom in, isikan kode berikut
mapinfo.runmenucommand 1705
4. Klik dua kali tombol zoom out, isikan kode berikut
mapinfo.runmenucommand 1706
5. Klik dua kali tombol ruler, isikan kode berikut
mapinfo.runmenucommand 1710
6. Klik dua kali tombol Info, isikan kode berikut
Dim Direc, Embex As String
Embex = “info”
Direc = “Run Application “”” + Mapviewform.gszAppDir + Embex & “.mbx”””
Mapviewform.mapinfo.do Direc
7. Klik dua kali tombol Radius, isikan kode berikut
mapinfo.runmenucommand 1703
8. Klik dua kali tombol layer, isikan kode berikut
mapinfo.runmenucommand 801
9. Klik dua kali tombol find, isikan kode
formfind.Visible = True
10. Klik dua kali tombol select, isikan kode berikut
Mapviewform.mapinfo.runmenucommand 301
11. Klik dua kali tombol thematic, isikan kode berikut
Mapviewform.mapinfo.runmenucommand 307
12. Klik dua kali tombol EXIT, isikan kode berikut
End
Kemudian kita tambahkan module pada project window, dalam program ini kita beri 3 module yang juga digunakan pada aplikasi emergency GIS. Untuk pengembangan bisa ditambah dengan module yang lain.
Ikuti langkah berikut :
1.Tambah Modul, beri nama MapBasic. Isi Modul MapBasic ini dengan isi dari MapBasic.def
2. Tambah Modul Browser, isi dengan kode berikut :
3. Tambah Modul PrintOut, isi kode berikut :
Setelah pembuatan form utama, berikutnya yang akan dibuat adalah form find, yang terdiri dari tombol-tombol pilihan pencarian. Langkah-langkahnya :
Pertama kita akan membuat form menu find utama. Pada window project klik kanan kemudian pilih add > form. Tambah form tersebut dengan tombol dan text, serta label, ComboBox.
isi propertinya seperti berikut :
Buat tombol seperti gambar dan berinama tombol tersebut :
2. Klik Tombol FIND JALAN dua kali, isikan kodenya seperti berikut :
Private Sub Cmdjalan_Click()
Formfind.Visible = False
Formfindjalan.Visible = True
End Sub
3. Klik tombol FIND UNIVERSITAS dua kali, isikan kodenya seperti berikut :
Private Sub Cmduniv_Click()
Formfind.Visible = False
Formfinduniv.Visible = True
End Sub
4. Klik tombol FIND HOTEL dua kali, isikan kodenya seperti berikut :
Private Sub Cmdhotel_Click()
Formfind.Visible = False
Formfindhotel.Visible = True
End Sub
5. Klik tombol EXIT dua kali, isikan kodenya sebagai berikut :
Private Sub Cmdexit_Click()
Formfind.Visible = False
End
Dengan demikian kita telah membuat form find, selanjutnya akan dibuat form find jalan, find universitas, dan find hotel.
Gampang kan??
Selamat Mencoba.
Ridian Kurniawan
1211500062
TV