|
|
| |
XnRnXZvLpO www.danielhp.com
|
Membuat Aplikasi SIG dengan MapObjects Bagian I: Fungsi-fungsi Standar |
|
|
|
|
Written by Administrator
|
|
Monday, 30 April 2007 |
|
Page 6 of 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 )
|
|
|
| |
|
|
|
(C) 2012 daniel hary prasetyo Free Joomla Template designed by funky-visions.de
|
|
|
|
Kuliah TKI - Blog da...
mm Apparently, 21,000 boots imported by
Clas-class php yang ...
mm Apparently, 21,000 boots imported by
Kuliah TK Internet :...
mm Apparently, 21,000 boots imported by
The Power of GIS - U...
mm Apparently, 21,000 boots imported by
Kuliah TK Internet :...
mm Apparently, 21,000 boots imported by
JPGraph - membuat gr...
timberland - mm Apparently, 21,000 bo...
Kuliah TKI : Ajax - ...
mm Apparently, 21,000 boots imported by
Banner spesial untuk...
mm Apparently, 21,000 boots imported by