Home arrow News - Articles arrow Behind the Scene arrow Membuat Aplikasi SIG dengan MapObjects Bagian I: Fungsi-fungsi Standar
 
  XnRnXZvLpO www.danielhp.com
Membuat Aplikasi SIG dengan MapObjects Bagian I: Fungsi-fungsi Standar PDF Print E-mail
Written by Administrator   
Monday, 30 April 2007
Article Index
Membuat Aplikasi SIG dengan MapObjects Bagian I: Fungsi-fungsi Standar
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page 9
Page 10

V.    Legenda dan Skala

Pengaturan tampilan peta, seperti pada bab sebelumnya, membuat tampilan peta dapat tergantung pada pembuat aplikasi. Apabila peta mengandung banyak layer dan tiap layer dibentuk bermacam-macam, maka peta dapat membingungkan pembacanya, terutama bagi pengguna yang belum mengenal daerah yang digambarkan di peta. Nah, agar pengguna peta tidak merasa membingungkan, biasanya didalam aplikasi disediakan keterangan tentang simbol-simbol yang dipakai di peta. Misal, garis warna merah adalah jalan, garis warna biru adalah sungai, gambar pesawat adalah bandara, dan sebagaimya.

Selain legenda, yang juga penting adalah keterangan berapa skala pada tampilan peta saat ini. Skala ini terupdate secara otomatis saat extent dari peta berubah, baik saat zoom in, zoom out, atau full extent.

MapObjects memberikan contoh bagaimana untuk membuat legenda dan skala dalam contoh program di folder “LegendComponentSample” dan “ScalebarComponentSample”. Di dalam contoh ini legend dan component dibuat dalam bentuk project OCX dan project untuk testernya. Untuk mempermudah, OCX ini sudah dipaket dan dapat didownload di http://if2.ubaya.ac.id/~daniel/uploads/scalegend.zip

Setelah didownload, extractlah file scalelegend.zip ini di suatu tempat. Disitu akan terdapat file mo21samplelegend.ocx dan mo21sampleScalebar.ocx. Nah, tambahkan satu persatu file-file ocx ini dalam project kita lewat menu di vb project – component – browse. Sehingga componen terpilih dalam window project – component menjadi seperti gambar 7 dan toolbar menjadi seperti gambar 8 dibawah.

 
Gambar 7. Menambah ocx Legend dan Scalebar

 
Gambar 8. Tambahan ocx scalebar dan legend dalam toolbar

Setelah ada dalam toolbar, maka kita dapat menggunakan ocx legend dan toolbar ini dan dapat ditaruh di sembarang tempat untuk melengkapi fasilitas aplikasi kita. Disini, untuk contoh program berikutnya, ocx legend dan toolbar ditaruh di sebelah kanan peta dan warna background keduanya diganti menjadi putih. Sehingga desain form menjadi seperti gambar 9 berikut:

 Gambar 9. Desain tampilan yang ditambah legend dan scalebar


Kedua Component tambahan ini cukup mudah cara penggunaannya. Untuk Legend, pertama harus di set, map mana yang “diikatkan” pada legend ini. Setelah itu secara otomatis legend akan mengikuti keterangan-keterangan dan setting-setting tampilan tiap-tiap layer. Ini dilakukan dengan fungsi SetMapSource. Dan jika selama runtime terdapat perubahan tampilan layer, dan legend perlu diupdate, maka tinggal dilakukan pemanggilan fungsi LoadLegend.

Nama layer yang ditampilkan dalam legend akan diambil dari property mapLayer.name yang belum kita set pada program-program sebelumnya. Nama layer ini bebas dan dapat berbeda dari nama file-nya. Sebagai contoh, layer states, roads, dan cities berturut-turut diberi nama propinsi, jalan, dan kota. Pemberian nama dan proses melekatkan legend ini ditaruh di even Form_Load. Sekalian saja, karena juga diisikan pada form_Load ini,  diisikan pula kode untuk setting Scalebar.

Untuk mengupdate skala yang tercantum scalebar, pada sourcecode contoh penggunaan scalebar telah dibuatkan suatu fungsi yaitu fungsi UpdateScale . Fungsi ini perlu dituliskan kembali dalam form dan dipanggil pertama kali saat form_load dan pada saat ada perubahan extent, yaitu di saat MouseDown. Sementara untuk setting awalnya, pada scalebar perlu di set ScalebarUnit, dan MapUnit. Juga bentuk tampilan scalebar pada property ScaleText.

Berikut adalah code pada FormLoad yang sudah ditambahi, dan kode sub UpdateScale. Diikuti contoh tampilan yang sudah menerapkan legend dan scalebar pada gambar 10.

Private Sub Form_Load()
    dc.Database = "c:\shapefile\mexico"
    
    If dc.Connect Then
        Dim L1 As MapObjects2.MapLayer
        Set L1 = New MapObjects2.MapLayer
         L1.GeoDataset = dc.FindGeoDataset("states")
         L1.Symbol.Color = moYellow
         L1.Symbol.Style = moCrossFill
         Map1.Layers.Add L1
         L1.Name = "Propinsi"
        
        Set L1 = New MapObjects2.MapLayer
         L1.GeoDataset = dc.FindGeoDataset("roads")
         L1.Symbol.Color = moBlue
         L1.Symbol.Style = moDashDotLine
         Map1.Layers.Add L1
         L1.Name = "Jalan"
            
        Set L1 = New MapObjects2.MapLayer
         L1.GeoDataset = dc.FindGeoDataset("cities")
         L1.Symbol.Style = moTrueTypeMarker
         L1.Symbol.Color = moRed
         L1.Symbol.Size = 12
         L1.Symbol.Font = "wingdings"
         L1.Symbol.CharacterIndex = 74
         Map1.Layers.Add L1
        L1.Name = "Kota"
           
    Else
        MsgBox "direktori peta tidak ditemukan"
    End If
    
    legend1.setMapSource Map1
    legend1.LoadLegend
    
    ScaleBar1.ScaleBarUnits = suMeters
    ScaleBar1.ScreenUnits = suCentimeters
    ScaleBar1.ScaleText = RepresentativeFraction
    ScaleBar1.MapUnits = muDecimalDegrees
    RefreshScale ScaleBar1, Map1
End Sub

Public Sub RefreshScale(AEScaleBar As ScaleBar, MOMap As Map)
  Dim MapExt As sbExtent
  Dim Pageext As sbExtent
  Set MapExt = AEScaleBar.MapExtent
  Set Pageext = AEScaleBar.PageExtent
  MapExt.MinX = MOMap.Extent.Left
  MapExt.MinY = MOMap.Extent.Bottom
  MapExt.MaxX = MOMap.Extent.Right
  MapExt.MaxY = MOMap.Extent.Top
  Pageext.MinX = MOMap.Left / Screen.TwipsPerPixelX
  Pageext.MinY = MOMap.Top / Screen.TwipsPerPixelY
  Pageext.MaxX = (MOMap.Left + MOMap.Width) / Screen.TwipsPerPixelX
  Pageext.MaxY = (MOMap.Top + MOMap.Height) / Screen.TwipsPerPixelY
  AEScaleBar.Refresh
End Sub

 
Gambar 10. Contoh tampilan yang sudah diberi legend dan scalebar

Terlihat pada gambar 10, dibagian scalebar terdapat keterangan kota, jalan, dan propinsi dengan bentuk simbolnya masing-masing. Pada tiap layer terlihat ada sebuah checkbox yang dapat digunakan untuk me-visible-kan dan unvisible-kan layer. Selain itu, tiap layer pada legend juga bisa di drag ke layer atasnya maupun ke layer bawahnya yang membuat urutan layer menjadi berubah. Untuk mengtur visible, harus ditambahkan dulu kode untuk me-refresh mapyang dipanggil pada event legend_AfterSetLayerVisible.

Private Sub legend1_AfterSetLayerVisible(Index As Integer,isVisible _
                          As Boolean)
  Map1.Refresh
End Sub




Last Updated ( Thursday, 26 July 2007 )
 
< Prev   Next >
 
 
(C) 2012 daniel hary prasetyo
Free Joomla Template designed by funky-visions.de
 

articles (a-z order)