| Membuat Aplikasi SIG dengan MapObjects Bagian II: Fungsi-fungsi Lanjutan |
| Written by Administrator | ||||||||||||||||||
| Thursday, 26 July 2007 | ||||||||||||||||||
|
Berikut adalah lanjutan dari tulisan tentang membuat aplikasi SIG dengan mapobject dan visual basic. Pada bagian ini, akan dijelaskan bagaimana cara untuk menampilkan peta dalam bentuk2 yang lain selain di bagian pertama, yaitu dengan rendering. Juga akan ada sebuah cara untuk membuat print-out peta. Bahasan terakhir adalah bagaimana menambah data object pada shapefile. [nb:bagi yang menginginkan source-code lengkap dari contoh2 di bagian I dan II dapat menghubungi saya di This e-mail address is being protected from spam bots, you need JavaScript enabled to view it ] I. Rendering
Layer peta dapat diatur tampilan warna maupun bentuknya berdasar setting yang diberikan terhadap property Symbol. Selain berdasar property ini, tampilan peta juga dapat diatur dengan property render yang isinya diambil dari beberapa fungsi rendering yang dapat dilakukan oleh MapObject. Fungsi rendering ini akan mengambil nilai atau isi dari field-field dalam layer untuk diproses dengan cara yang berbeda. Ada 5 jenis rendering yang akan dijelaskan yaitu LabelRenderer, ValueMapRenderer, ClassBreakRenderer, DotDensityRenderer, dan ChartRenderer. Yang lebih detailnya ada dalam sub bab-sub bab dibawah,
a. LabelRenderer
Rendering jenis ini akan membuat aplikasi menampilkan layer dengan isi dari sebuah field –nya ditampilkan dalam bentuk text. Fungsi ini sering digunakan untuk memberikan keterangan object-object di peta. Sering kali, dalam suatu data, semua keterangan tentang object-object dalam petanya ada dalam sebuah layer, yang sering disebut dengan layer annotation. Maka selain mengubah-ubah tampilan layer2 peta, biasa ditambahkan satu layer annotation ini untuk memberikan keterangan-keterangannya. Hal ini dapat dilakukan dengan jenis renderer ini.
Untuk melakukan rendering jenis ini cukup mudah. Akan diperlukan sebuah object yaitu object LabelRenderer. Dalam Object ini yang perlu kita isikan adalah nama field yang isinya akan ditampilkan. Selain nama field tadi itu hanya tambahan-tambahan saja, seperti drawbackground untuk menentukan akan ditampilkan text-nya saja atau text-dan juga bentuk tampilan data spatialnya.
Contoh program rendering ini dan juga rendering yang lain, dapat dilakukan dengan cara menyelipkan atau mengubah potongan-potongan kode yang ada dibagian Form_load. Dimana untuk contoh labelrenderer ini dapat ditambahkan potongan program dibawah dan contoh hasilnya dapat dilihat pada gambar 20.
Dim L1 As MapObjects2.MapLayer Set L1 = New MapObjects2.MapLayer L1.GeoDataset = dc.FindGeoDataset("states") Dim lr As New MapObjects2.LabelRenderer lr.Field = "Name" lr.DrawBackground = False L1.Renderer = lr Map1.Layers.Add L1
Gambar 20. Contoh hasil LabelRenderer
b. ValueMapRenderer
Renderer jenis ini akan membuat record-record yang isi suatu field tertentu-nya berbeda akan ditampilkan dalam bentuk yang berbeda. Berguna untuk memperlihatkan suatu layer yang berisi banyak informasi yang berbeda, misalnya layer kabupaten yang akan ditampilkan dengan warna yang berberda tiap kecamatan-kecamatan didalamnya.
Inti dari rendering jenis ini adalah penentuan nilai/isi suatu field dan bentuk tampilan dari nilai tersebut. Misal untuk kecamatan A (isi field tertentunya adalah A) akan diwarnai merah, B diwarnai kuning, C hijau, dan seterusnya. Setiap pendeklarasian nilai baru akan merlukan semacam tempat baru, maka tempat ini harus dideklarasikan dahulu jumlahnya. Jumlah tempat ini adalah valueCount, sedang isi dan bentuk symbolnya masing-masing ada dalam property value dan symbol.
Dalam contoh berikut akan ditampilkan jika nama state-nya “Sonora” akan diwarnai merah, “mexico” hijau, dan “yucatan” kuning. Dengan contoh hasil tampilan pada gambar 21.
Dim L1 As MapObjects2.MapLayer
Set L1 = New MapObjects2.MapLayer L1.GeoDataset = dc.FindGeoDataset("states") Dim vr As New ValueMapRenderer vr.ValueCount = 3 vr.Field = "Name" vr.Symbol(0).Color = moRed vr.Value(0) = "Sonora" vr.Symbol(1).Color = moGreen vr.Value(1) = "Mexico" vr.Symbol(2).Color = moYellow vr.Value(2) = "Yucatan" L1.Renderer = vr Map1.Layers.Add L1
Gambar 21. contoh tampilan ValueMap Renderer 1
Jika ingin membuat seluruh states-nya diwarnai dengan warna berbeda, maka kita dapat memanfaatkan object recordset untuk looping ke semua record dalam layer. Dimana disaat looping kita isikan value-nya dan bentuk symbolnya. Apabila bentuk symbol tidak diisi maka akan digenerate secara acak. Seperti pada contoh dibawah, states akan ditampilkan dalam warna-warna yang berbeda tetapi acak, setiap kali dijalankan akan memberikan susunan warna yang berbeda. Contoh hasilny ada pada gambar 22. Jika ingin susunan warnanya sama, biasanya digunakanlah susunan koleksi2 warna tertentu yang sering disebut dengan nama palette.
Dim L1 As MapObjects2.MapLayer Set L1 = New MapObjects2.MapLayer L1.GeoDataset = dc.FindGeoDataset("states") Dim vr As New ValueMapRenderer vr.Field = "Name" Dim rec As MapObjects2.Recordset Set rec = L1.Records vr.ValueCount = rec.Count Dim i As Long i = 0 While Not rec.EOF vr.Value(i) = rec("name").Value rec.MoveNext i = i + 1 Wend L1.Renderer = vr Map1.Layers.Add L1
Gambar 22. Memberikan warna beda untuk setiap state
c. ClassBreakRenderer
Jika Jenis ValueMap biasa digunakan untuk field-field dengan tipe string, maka untuk field-field dengan tipe angka sering dibentuk dalam ClassBreak Renderer. ClassBreak renderer akan membuat kelompok-kelompok nilai, dimana kelompok-kelompok nilai tadi mempunyai bentuk symbol tertentu. Nilai suatu field jika ada dalam range suatu kelompok akan mengikuti bentuk symbol kelompok tadi. Untuk tipe polygon,biasanya perubahan nilai range diikuti dengan perubahan warna, sedang pada Garis dan Titik, selain perubahan warna juga dapat menggunakan perubahan ukuran.
Dalam contoh pertama akan dibuat 10 buah batas nilai (break), masing-masing batas nilai berselang 1.000.000 dari batas sebelumnya. Nilai-nilai ini akan dibuat dalam warna gradasi dari kuning ke merah. Jadi warna kuning akan bernilai paling kecil dan warna merah bernilai paling besar. Kelompok nilai ini akan dibuat untuk perbandingan dengan isi suatu field tertentu dalam layer, jika nilai field adalah 1.400.000 maka ia masuk kelompok 1.000.000 sampai 1.999.999, dan warna/symbol akan mengikuti warna atau symbol kelompok ini.
Untuk membuat kelompok nilai, dilakukan dengan mengisi property BreakCount. Dan pemberian nilai tiap batas dilakukan dengan mengisikan property break dengan parameter nomor break. Sedang untuk membuat warna gradasi dilakukan dengan fungsi rampcolors dengan parameter warna awal dan warna akhir. Berikut adalah cuplikan code untuk menambah layer dengan rendering bertipe classbreak. Dengan hasilnya dapat dilihat pada gambar 23.
Dim L1 As MapObjects2.MapLayer Set L1 = New MapObjects2.MapLayer L1.GeoDataset = dc.FindGeoDataset("states") Dim cb As New ClassBreaksRenderer cb.Field = "Pop1990" cb.BreakCount = 10 For i = 0 To cb.BreakCount - 1 cb.Break(i) = i * 1000000 Next cb.RampColors moYellow, moRed L1.Renderer = cb Map1.Layers.Add L1
Gambar 23. Contoh classbreak renderer pada polygon
Contoh diatas adalah contoh untuk tipe data polygon. Seperti telah disebutkan sebelumnya, untuk Line dan Point, dapat dibuat suatu gradasi symbol berdasar besar atau ukurannya. Berikut ini dicontohkan kode untuk bentuk classbreak renderer untuk layer bertipe point. Untuk gradasi ukuran, dilakukan dengan fungsi SizeSymbol dengan parameter ukuran terkecil dan ukuran terbesar. Brikut adalah cuplikan code untuk menambahkan data cities yang dirender dengan classbreak renderer untuk ditampilkan dalam ukuran yang berbeda tergantung besar populasinya. Contoh hasilnya seperti terlihat pada gambar 24.
Dim cb As New ClassBreaksRenderer cb.Field = "Population" cb.BreakCount = 10 cb.SymbolType = moPointSymbol For i = 0 To cb.BreakCount - 1 cb.Break(i) = i * 100000 cb.Symbol(i).Color = moRed cb.Symbol(i).Style = moCircleMarker Next cb.Symbol(i).Color = moRed cb.Symbol(i).Style = moCircleMarker cb.SizeSymbols 2, 20 L1.Renderer = cb Map1.Layers.Add L1
Gambar 24. Contoh classbreak renderer untuk tipe Point
d. DotDensityRenderer
Dengan renderer classbreak dapat secara cepat terlihat mana daerah yang mempunyai jumlah penduduk terpadat. Cara lain yang dapat dilakukan selain memberikan warna seperti ini adalah dengan memberikan infomasi berupa kepadatan titik. Sebuah titik dapat mewakili suatu nilai. Misal jika sebuah titik mewakili 50.000 nilai, maka suatu daerah yang besar nilainya 1.000.000 akan ada 200 titik didalamnya yang posisinya dibuat acak. Penggambaran seperti ini dapat dilakukan dengan DotDensityRenderer.
Nilai yang diwakili titik tadi dapat di set melalui property DotValue. Selain itu bentuk titiknya dapat diubah-ubah warnanya, dan ukurannya. Cuplikan program berikut digunakan untuk menampilkan layer states dalam bentuk dotdensity. Dengan contoh hasilnya dapat dilihat pada gambar 2.4.
Dim L1 As MapObjects2.MapLayer Set L1 = New MapObjects2.MapLayer L1.GeoDataset = dc.FindGeoDataset("states") L1.Symbol.Color = moWhite Dim dd As New DotDensityRenderer dd.Field = "pop1990" dd.DotColor = moGreen dd.DotSize = 3 dd.DotValue = 50000 dd.DrawBackground = True L1.Renderer = dd Map1.Layers.Add L1
Gambar 25. Contoh tampilan DotDensityRenderer
e. ChartRenderer
Masih tentang menampilkan nilai field, jika pada rendering-rendering sebelumnya digunakan untuk memperlihatkan nilai satu field, maka rendering tipe ChartRenderer ini dapat digunakan dengan menyajikan nilai beberapa field secara langsung. Nilai-nilai dari beberapa field ini akan disajikan dalam bentuk grafik (chart ). Ada dua tipe grafik yaitu batang/bar dan lingkaran/pie. Selain membandingkan dengan nilai dengan field yang lain dalam satu record, bentuk charnya juga memungkinkan kita untuk membandingkan dengan nilai pada record yang lain. Dalam bentuk bar akan terlihat dari panjangnya bar, sedang dalam bentuk pie akan terlihat dari besarnya lingkaran.
Seharusnya chart renderer digunakan untuk membandingkan beberapa field yang sejajar, seperti misal jumlah_penduduk_kulit_putih, jumlah_penduduk_kulit_hitam ,jumlah_penduduk_asi, dan sebagainya. tetapi karena dalam contoh data mexico tidak ada field yang sejajar untuk ditampilkan, maka untuk contoh berikut digunakan field P_urban90, P_ing_lang, P_empl_sec. Dengan warna masing-masing adalah merah, kuning, dan hijau. Contoh yang pertama bertipe Bar. Terlihat pada property ChartType. Dan contoh yang kedua hanya mengubah isi property ini dengan nilai moPie. Hasil kedua contoh dapat dilihat pada gambar 26 dan 27.
Dim L1 As MapObjects2.MapLayer Set L1 = New MapObjects2.MapLayer L1.GeoDataset = dc.FindGeoDataset("states") L1.Symbol.Color = moWhite Dim cd As New ChartRenderer cd.DrawBackground = True cd.FieldCount = 3 cd.Field(0) = "P_urban90" cd.Field(1) = "P_ing_lang" cd.Field(2) = "P_empl_sec" cd.ChartType = moBar cd.Color(0) = moRed cd.Color(1) = moYellow cd.Color(2) = moGreen L1.Renderer = cd Map1.Layers.Add L1
Gambar 26. Contoh hasil ChartRenderer tipe Bar
Gambar 27. Contoh hasil ChartRenderer tipe Bar
II. Printing
Sebuah aplikasi SIG sering digunakan sebagai dasar analisa bagi pemerintah daerah. Tidak jarang ada pihak-pihak lain yang ingin melihat pemetaan suatu kawasan tertentu meminta (membeli) hardcopy dari pemerintah daerah. Maka kebanyakan aplikasi SIG dapat melakukan printout sampai dengan ukuran kertas terbesar, yaitu A0.
Banyak cara untuk melakukan print-out peta. Hampi semua component tambahan dalam VB yang mengkhususkan fungsinya untuk print-out,seperti crystalreport atau activereport, dapat digunakan untuk printout peta.Karena peta yang tampil dilayar dapat diubah menjadi file (bmp,jpg, atau emf), dan kebanyakan dari component-component tadi menyediakan cara untuk men-attach-kan gambar dalam print-outnya.
Tapi jika tidak mempunyai component tambahan tadi, kita dapat memanfaatkan object COM pada Ms PowerPoint. Kenapa powerpoint ? sebenarnya dapat juga kita buat dalam bentuk ms Word atau Excel. Hanya saja powerpoint mempunyai satu keunggulan, yaitu dapat mencetak sampai A0 dan dapat diconvert kedalam ukuran-ukuran yang lain tanpa merusak gambar karena gambarnya berupa vektor.
Powerpoint ini akan dimanfaatkan untuk membuat template pencetakan. Yang perlu diingat disini adalah urutan penambahan object dalam powerpoint. Disini Object yang pertama akan digunakan sebagai tempat untuk peta, sedang object yang kedua d igunakan untuk tempat legend. Object2 berikutnya bebas mau dipakai untuk apa, bisa untuk judul, keterangan-keterangan lain, gambar-gambar pendukung, atau frame-frame pemanis tampilan. Pada gambar 28 terlihat contoh template sederhana untuk pencetakan peta.
Gambar 28. Contoh template dalam Microsoft powerpoint
Pada bagian program, karena kita memanfaatkan fungsi-fungsi powerpoint, maka perlu ditambahkan reference microsoft Powerpoint seperti pada gambar 29.
Gambar 29. Menambahkan reference powerpoint
Dalam interface dapat ditambahkan sebuah tombol untuk print. Didalam event click tombol ini yang akan dilakukan adalah :
- Menyimpan tampilan peta kedalam file gambar. Yang dipilih adalah tipe EMF karena berbentuk vektor. Dan menyimpan juga legend kedalam file gambar, sayangnya untuk legend hanya ada fungsi untuk menympan sebagai file BMP
Map1.ExportMap moExportEMF, App.Path & "\peta.emf", 1 legend1.ExportToBmp App.Path & "\legenda.bmp"
- Memanggil aplikasi powerpoint, me-load file template yang kita siapkan tadi. Mengakses slide nomor satu.
Dim pp As New PowerPoint.Application Dim pr As PowerPoint.Presentation Dim sl As PowerPoint.Slide pp.Visible = True pp.Activate Set pr = pp.Presentations.Open(App.Path & "\template1.ppt") Set sl = pr.Slides(1)
- Mengambil lokasi object 1 untuk tempat peta, dan object 2 untuk tempat legend, kemudian pada lokasi-lokasi tadi diisikan gambar peta dan gambar legend.
Dim sh As PowerPoint.Shape set sh = sl.Shapes(1) T = sh.Top + 2 L = sh.Left + 2 w = sh.Width - 4 h = sh.Height - 4 Set sh = sl.Shapes.AddPicture(App.Path & "\temp.emf", linktofile:=True, savewithdocument:=True, Left:=L, Top:=T, Width:=w, Height:=h)
Set sh = sl.Shapes(2) T = sh.Top + 2 L = sh.Left + 2 Set sh = sl.Shapes.AddPicture(App.Path & "\legenda.bmp", linktofile:=True, savewithdocument:=True, Left:=L, Top:=T)
Jadi kode lengkapnya saat melakukan print adalah seperti dibawah, dengan peta pada gambar 30, akan menghasilkan print-out seperti gambar 31.
Map1.ExportMap moExportEMF, App.Path & "\peta.emf", 1 legend1.ExportToBmp App.Path & "\legenda.bmp"
Dim pp As New PowerPoint.Application Dim pr As PowerPoint.Presentation Dim sl As PowerPoint.Slide
pp.Visible = True pp.Activate Set pr = pp.Presentations.Open(App.Path & "\template1.ppt") Set sl = pr.Slides(1) Dim sh As PowerPoint.Shape Set sh = sl.Shapes(1) T = sh.Top + 2 L = sh.Left + 2 w = sh.Width - 4 h = sh.Height - 4 Set sh = sl.Shapes.AddPicture(App.Path & "\temp.emf", linktofile:=True, savewithdocument:=True, Left:=L, Top:=T, Width:=w, Height:=h)
Set sh = sl.Shapes(2) T = sh.Top + 2 L = sh.Left + 2 Set sh = sl.Shapes.AddPicture(App.Path & "\legenda.bmp", linktofile:=True, savewithdocument:=True, Left:=L, Top:=T)
Gambar 30. Contoh tampilan untuk print-out
Gambar 31. Contoh hasil Printout
III. Editing Peta
Seperti dijelaskan pada bab-bab awal, Aplikasi SIG mempunyai dua bentuk data yaitu data spatial dan data tabular. Untuk aktualisasi data, sepanjang itu adalah data tabular akan mudah untuk membuatnya karena seperti membuat editing database biasa. Yang menjadi masalah adalah bagaimana jika data spatialnya berubah. Misal ada tambahan lokasi titik, ada jalur-jalur jalan baru, ada pemisahan daerah propinsi yang mengakibatkan munculnya propinsi baru, dan sebagainya.
Yang paling mudah adalah memang menyerahkan pengubahan data spatial ini pada aplikasi GIS seperti arcview. Karena disitu sudah sangat lengkap tool-toolnya. Tetapi jika user menginginkan editing spatial pada aplikasi, tetap kita dapat memfasilitasi-nya. Sebenarnya dapat juga dibuat selengkap tool-toool arcview, tetapi akan cukup rumit programnya. Yang paling rumit adalah pengubahan bentuk atau letak sebuah object dalam peta. Di arcview kita dapat merubah lokasi object dengan menggeser vertex-vertex yang ada pada polygon atau polilne. Di dalam aplikasi mapobject, sayang sekali hal ini akan cukup rumit, walau sebenarnya bisa dilakukan. Maka editing peta yang akan dijelaskan disini hanyanya untuk menambah object dan menghapus object spatial, dan mengubah data non spatial.
Agar lebih sederhana, akan dipisah antara data tipe point, line, dan polygon. Sekali lagi bahwa ini untuk penyederhanaan saja, sebenarnya dapat saja ketiga editing pada ketiga jenis ini digabung dalam ssatu form. Adapun desain form untuk editing dibuat seperti gambar 32.
Gambar 32. Desain editing Peta
Proses untuk editingnya adalah sebagai berikut: untuk menambah data, pertama klik pada tombol “tambah point”, setelah tombol ini diklik, tempatkan mouse pada peta di lokasi dimana mau ditambahkan object-nya. Untuk titik tinggal diklik sekali , sedang untuk line dan polygon akan membutuhkan beberapa kali klik karena data akan dibuat path demi path, yang jika telah selesai membuat seluruh path, ditutup dengan melakukan double klik. Untuk editing isi-isi field dan hapus object, harus dilakukan select terlebih dahulu pada object yang bersangkutan. Yaitu dengan cara klik tombol “select” dan kemudian klik di peta object mana yang ingin diselect. Setelah itu dapat dilakukan pengubahan isi field dengan menuliskan nilai-nilai pada textbox-textbox dibagian bawah tombol select. Isian ini akan tersimpan jika dilakukan klik pada tombol “Simpan Attribut”. Sedang untuk hapusnya, tinggal dilakukan klik pada tombol hapus.
Untuk memberikan fungsi seperti diatas, yang perlu ditambahkan adalah (menggunakan kode pada form editing titik):
- ubah penambahan layer-layer pada form load dalam bentuk pemanggilan terhadap suatu sub. Karena sub ini nanti akan sering dipanggil oleh lain-lain sub selama proses editing. Tambahkan bentuk tampilan object yang baru. Dilakukan dengan mensetting nilai-nilai pada object trackinglayer.symbol. tambahakan juga private variabel Recs, agar dapat diakses oleh semua sub dalam form ini
private recs as mapobjects2.records
Private Sub Form_Load() dc.Database = "c:\shapefile\mexico" If dc.Connect Then refreshdata Else MsgBox "direktori peta tidak ditemukan" End If Map1.TrackingLayer.SymbolCount = 1 Map1.TrackingLayer.Symbol(0).SymbolType = moPointSymbol Map1.TrackingLayer.Symbol(0).Color = moGreen Map1.TrackingLayer.Symbol(0).Style = moCircleMarker Map1.TrackingLayer.Symbol(0).Size = 8 End Sub
- Tambahkan mode pada saat ingin melakukan penambahan object atau select object. Dapat ditentukan juga bentuk mousepointer-nya.
Private Sub Command5_Click() pMode = "tambah" Map1.MousePointer = moCross End Sub
Private Sub Command7_Click() pMode = "select" Map1.MousePointer = moArrowQuestion End Sub
- Ubah onMouseDown pada object peta, tambahkan jika dilakukan saat 2 mode diatas akan melakukan apa. Disini proses akan dilakukan dalam sub, maka dalam mousedown ini dilakukan pemanggilan terhadap sub.
Case "tambah" TambahTitik Map1.Layers("kota"), x, y Case "select" SelectTitik Map1.Layers("kota"), x, y
- Buat fungsi TambahTitik dan SelectTitik. P
Private Sub TambahTitik(ml As MapObjects2.MapLayer, x As Single, y As Single) Dim p As New MapObjects2.Point Dim f As MapObjects2.Field Set recs = ml.Records Set f = recs.Fields("Shape") Set p = Map1.ToMapPoint(x, y) recs.Edit recs.AddNew f.Value = p recs.Update refreshdata End Sub
Private Sub SelectTitik(ml As MapObjects2.MapLayer, x As Single, y As Single)
Dim p As New MapObjects2.Point Set p = Map1.ToMapPoint(x, y) Set recs = ml.SearchByDistance(p, 0.1, "") Map1.TrackingLayer.ClearEvents If Not recs.EOF Then Text1.Text = recs.Fields("Name").Value Text2.Text = recs.Fields("Population").Value Map1.TrackingLayer.AddEvent recs.Fields("Shape").Value, 0 End If End Sub
- terakhir tambahan fungsi untuk simpan attribut
Private Sub Command8_Click() recs.Edit recs.Fields("Name").Value = Text1.Text recs.Fields("Population").Value = Text2.Text recs.Update End Sub
Contoh tampilan untuk proses editingpeta adalah seperti gambar 33.
Gambar 33. Contoh editing untuk peta jenis Point
Secara umum yang membedakan dengan tipe Lain dan Polygon hanyalah saat definisi symbol dalam trackinglayer symbol dan saat tambah object saja.
Untuk garis:
Map1.TrackingLayer.SymbolCount = 1 Map1.TrackingLayer.Symbol(0).SymbolType = moLineSymbol Map1.TrackingLayer.Symbol(0).Color = moGreen Map1.TrackingLayer.Symbol(0).Style = moSolidLine Map1.TrackingLayer.Symbol(0).Size = 2
Private Sub TambahGaris(ml As MapObjects2.MapLayer, x As Single, y As Single) Dim ln As New MapObjects2.Line Dim f As MapObjects2.Field Set recs = ml.Records Set f = recs.Fields("Shape") Set ln = Map1.TrackLine recs.Edit recs.AddNew f.Value = ln recs.Update refreshdata End Sub
Untuk polygon:
Map1.TrackingLayer.SymbolCount = 1 Map1.TrackingLayer.Symbol(0).SymbolType = moFillSymbol Map1.TrackingLayer.Symbol(0).Color = moGreen Map1.TrackingLayer.Symbol(0).Style = moSolidFill
Private Sub TambahPoly(ml As MapObjects2.MapLayer, x As Single, y As Single) Dim ln As New MapObjects2.Polygon Dim f As MapObjects2.Field Set recs = ml.Records Set f = recs.Fields("Shape") Set ln = Map1.TrackPolygon recs.Edit recs.AddNew f.Value = ln recs.Update refreshdata End Sub
Dengan contoh tampilan masing-masing
Gambar 34. Contoh editing untuk peta jenis Line
Gambar 35. Contoh editing untuk peta jenis Polygon Bersambung ke bagian III : Fungsi-fungsi analisa
Only registered users can write comments!
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |
||||||||||||||||||
| Last Updated ( Sunday, 13 April 2008 ) | ||||||||||||||||||