Membangun Aplikasi GIS/SIG Dengan DotSpatial OpenSource

Dalam membangun sebuah aplikasi GIS tentu saja dibutuhkan komponen/control guna menampilkan Map maupun legendanya. Awalnya saya sangat tertarik dengan MapObject buatan ESRI, tapi ternyata komponen tersebut bersifat komersial dan harganya mencapai puluhan juta. Namun akhirnya saya bisa mendapatkannya dari seseorang (bajakan) dan versinya masih 2.0. Meskipun banyak contoh yang disertakan namun tetap saja dirasa ada kekurangannya dalam membuat aplikasi yang powerful apalagi versi  yang saya miliki saat itu hanya mendukung sistem operasi Windows XP dan tidak bisa digunakan di Windows 7. Setelah pencarian yang cukup lama ternyata ada sebuah komponen open source yang tidak kalah hebatnya dari MapObject, namanya MapWinGIS.ocx. Komponen ini bisa digunakan pula diberbagai bahasa pemrograman seperti Delphi, VB 6, VB.net hingga C++.net. Selain itu dokumentasi dan sample codenya bisa didownload gratis di MapWindow.org juga didukung oleh komunitas yang besar. Sebagai programmer newbie yang hanya belajar otodidak tentunya banyak mengalami kesulitan dalam mempelajari pemrograman aplikasi GIS ini, karena itulah saya hanya fokus mempelajari Visual Basic yang konon paling mudah dipelajari meskipun ada yang bilang kalau VB itu bahasanya amburadul. Sebenarnya saya bukanlah seorang programmer, mungkin lebih  cocok disebut Cuztomizer yang artinya memakai program orang lain untuk dirombak menjadi bentuk yang baru, tapi itulah proses belajar. Sekian lama mempelajari MapWinGIS membuat saya memutuskan bermigrasi dari VB 6 ke VB.Net yang lebih mendukung MapWinGIS.ocx. Namun kebuntuan akhirnya ditemui tatkala program aplikasi GIS yang saya buat selalu saja error dan tidak bisa menampilkan item legenda

Seiring waktu akhirnya saya coba melirik DotSpatial.dll yang dulunya  bernama MapWindow6.dll. Sebenarnya DotSpatial juga pengembangan dari MapWinGIS namun dibutuhkan .Net Framework 4 untuk menggunakannya. Setelah pencarian source code di situs http://dotspatial.codeplex.com, ternyata jauh lebih mudah membuat code di DotSpatial ketimbang MapWinGIS, apalagi cukup menggunakan satu file library (dll) yang didalamnya sudah ter-include control Map, legenda, toolbar hingga ribbon. Ternyata pihak pengembang DotSpatial sudah melengkapi code yang siap pakai dan tinggal di eksekusi. Misalnya saja di MapWinGIS untuk meload file shp/raster dibutuhkan code seperti berikut:
 'Create instances of the possible data objects,
'to retrieve the dialog filters of supported formats.
Dim sf As New MapWinGIS.Shapefile
Dim grd As New MapWinGIS.Grid
Dim img As New MapWinGIS.Image
'We want users to be able to open any file type.
'Merge the dialog filters by placing a pipe character
'in between each:
Dim dlg As New OpenFileDialog
dlg.Filter = "All Files (*.*)|*.*|" & sf.CdlgFilter & _
"|" & grd.CdlgFilter & "|" & img.CdlgFilter
If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
'If the user didn't cancel the dialog, try to open the file.
'First, determine what kind it was:
Dim extension As String = _
IO.Path.GetExtension(dlg.FileName).ToLower()
If sf.CdlgFilter.ToLower().Contains(extension) Then
'It's a shapefile
sf.Open(dlg.FileName)
Map.AddLayer(sf, True)
'Zoom to all visible layers
Map.ZoomToMaxExtents()
Return 'Done
ElseIf grd.CdlgFilter.ToLower().Contains(extension) Then
'NOTE: a .tif can be a GeoTIFF (a grid)
'or an image. Check this, if the file
'is a tif:
If dlg.FileName.ToLower().EndsWith("tif") Then
If Not Map.IsTIFFGrid(dlg.FileName) Then
'It's an image, not a grid.
'Open it as an image.
img.Open(dlg.FileName)
Map.AddLayer(img, True)
'Zoom to all visible layers
Map.ZoomToMaxExtents()
Return 'Done
End If
End If
'Open the grid:
grd.Open(dlg.FileName)
'Define a coloring scheme to color this grid:
Dim sch As New MapWinGIS.GridColorScheme
'Use a predefined coloring scheme "Fall Leaves"
sch.UsePredefined(grd.Minimum, grd.Maximum, _
MapWinGIS.PredefinedColorScheme.FallLeaves)
'Convert it to an image that can be displayed:
Dim u As New MapWinGIS.Utils

Dim gridimage As MapWinGIS.Image
gridimage = u.GridToImage(grd, sch)
'Add the generated image to the map:
Map.AddLayer(gridimage, True)
'Zoom to all visible layers
Map.ZoomToMaxExtents()
Return 'Done
ElseIf img.CdlgFilter.ToLower().Contains(extension) Then
'It's a plain image
img.Open(dlg.FileName)
Map.AddLayer(img, True)
'Zoom to all visible layers
Map.ZoomToMaxExtents()
Return 'Done
End If
End If
(Lumayan panjang kan?), namun di DotSpatial cukup mengetik code satu baris seperti berikut:

Map1.AddLayer() 

maka file shp dengan mudah ditampilkan. Konfigurasi legendanya juga sangat mudah dan tidak perlu mengetik code untuk menampilkan legenda cukup mengatur propertiesnya . Bahkan yang sangat menarik adalah jika di klik kanan di legenda maka akan muncul menu untuk menampilkan fungsi yang hampir sama di ArcGIS seperi "View Attribute Table", "Remove Layer", "Zoom To layer", "Properties" dan masih banyak lagi. Selain itu untuk menampilkan informasi peta (Identifier), Measure hingga membuat Layout masing-masing hanya cukup mengetik satu baris perintah jadi sangat memudahkan. Tutorialnya juga sudah disiapkan oleh pihak pengembang jadi silahkan download di http://dotspatial.codeplex.com/wikipage?title=DotSpatial%20Tutorials&referringTitle=Documentation dijamin puas deh! Namun sebagai catatan windows anda (mininimal XP) harus diupgrade ke NET.Framework 4, juga bagusnya pakai Microsoft Visual Studio 2010 yang mendukung .Net Framework 4.

Berikut ini adalah aplikasi yang sempat saya buat dan sampai sekarang saya masih mengembangkannya, menurut  saya ini sudah lumayan untuk seorang programmer kemarin sore.
Gambar: Aplikasi Sistem Informasi Lahan

Post a Comment

17 Comments

Irvan said…
Boleh tau gan itu aplikasi yg diatas buatnya pake apa ? & kalau boleh apa punya sampel source code yg simpelnya buat belajar

Thanks
Syutia Gumilar said…
kang, itu gratisan gak dotspatialnya? sy jg lg belajar jd arcobject developer nih,, thx ya buat responnya
Mas Irvan : Contoh aplikasinya saya buat pake Visual basic .NET 2010. Untuk Source Codenya bisa dilihat langsung di webnya dotspatial.codeplex.com

Mas Syutia : Iya, Dotspatial gratis bahkan Open Source. Bisa didownload juga di dotspatial.codeplex.com
fdlan said…
bang,dotspatial bisa dgunakan dDelphi gak?
ini bentuknya ActiveX gitu kan bang?
leafha said…
mas itu aplikasinya pake template bukan pak?
boleh tau dapet templatenya dmna?
Buatnya pake hanya menggunakan control bawaan Dotspatial. Bahasa pemrogramannya VB.net
leafha said…
kontrol bawaan?
punya tutorialnya mas biar menunya kaya punya mas
soalnya saya nyari2 blm ketemu coding bikin menu kaya gt mas
This comment has been removed by the author.
Menunya pake tool ribbon, dulu dotspatial dilengkapi ribbon yang versi 1.2. Kalau yang versi sekarang sepertinya sudah dihilangkan tool ribbon. Tapi masih bisa pake tool ribbon lain, coba saja cari di google control ribbon yang free
leafha said…
Bentuknya Coding atau kaya toolbar gt mas?
maaf ya mas saya masih newbe masalah buat aplikasi gis
Seperti toolbar Microsoft windows, fungsinya mirip toolbar biasa hanya lebih bagus tampilannya
This comment has been removed by the author.
leafha said…
This comment has been removed by the author.
Hasan GMC said…
Manthap informasinya... terimakasih.
Gantama said…
This comment has been removed by the author.
Gantama said…
Makasih mas infonya, mayan ilmu lagi. Hasil jadinya ada gk mas? biar bisa di oprek2.
Makasih

Silahkan kunjungi Website Saya :
http://gantama.mahasiswa.atmaluhur.ac.id/
Website Kampus :
www.atmaluhur.ac.id
Unknown said…
mantul info sama tutorialnya, kalo bisa bikin lagi tutorialnya bos..

Kunjungi website saya ya : http://dufiflame.mahasiswa.atmaluhur.ac.id/
dan website kampus saya : http://atmaluhur.ac.id/