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
Comments
Search
contoh diagram alir
wawan (125.161.160.xxx) 2009-01-17 04:41:01

alow mas, setelah saya membaca artikel yang ditulis oleh mas daniel, saya
tertarik sekali, saya sedang penelitian buat skripsi saya tentang aplikasi gis
menggunakan visual basic dan map object, kalau boleh tau contoh diagram alir
membuat sofware aplikasi gis itu bagaimana ya mas, tolong pencerahan dari mas
daniel

terimakasih
Anonymous (122.139.62.xxx) 2009-05-27 01:40:09

cheap wow power leveling cheapest wow power leveling my wow gold buy wow gold replica replica rolex CHEAP wow power level BUY power leveling replica rolex replica CHEAPEST power leveling MY wow power level
cheap rs gold
good BUY wow gold
replica rolex
CHEAPEST wow gold
cheap lotro gold
buy wow gold
my wow gold
cheapest wow gold
CHEAP wow gold zmc
Women
Buy Ugg Boots (125.78.240.xxx) 2010-02-27 07:38:10

With all the
boots [url=http://www.zhjugg.com/new-product-ugg-bailey- 

button-58
03-grey-boots-p-]UGG Bailey Button Grey[/url] included in Ugg


Australia’s Classic Collection range the Bailey
chenwei
Button
is lined ugg cardy

oatmeal with twin faced Grade A sheepskin.
Also there is the

UGG Bailey Button traditional

suede heel guard to ensure that not only

is this area
protected but offers this part of the boot support.

Ugg Cardy Boots Plus within the

boots you find each pair has sock liners

that are
made from sheepskin PU foam so increasing the level of

Ugg Cardy comfort a person feels

when wearing them.
激安 ユニフォ&
激安 ユ| (220.161.165.xxx) 2010-02-27 08:48:42

LCZ 
読売巨人軍は 、ビ
;ジターゲ&# 12540;ムで着用&
#12377;  427;夏季限定のӎ 0;|
69;マービジタ ーユニホ
;ーム&# 12301;を 採用しま
2377;。ユニフォーム...このユニ

ホӦ 0; ムの
発表会見&# 12364;12日(&#
26376;A 289;、東京・大৔ 3;ஹ
0;の球団事務 所で開か
れ、&# 12481;ームを代表  
375;て 坂本勇人選手&# ...
MBT Shoes
mbt uk (220.161.165.xxx) 2010-02-27 10:17:22

When you purchase Mbt shoes you achieve shoes that appeal mbt shoes to your sense of style while insuring a shoe that does not cause pain and
discomfort after a day mbt trainers shoes of being on your feet. And after your purchase you know you have shoes
that are going to outlast shoes found in most stores. Created for
comfort and long lasting, MBT shoes utilize the highest quality
leather and materials. If you experience mbt uk discomfort from your foot perspiring during the day MBT Shoes applies a
sock lining in the lining of the shoe where you foot rests. mbt shoe This allows your feet to stay dry during the most challenging active
days.hlm
nike-shox (125.78.242.xxx) 2010-02-27 16:37:27

rr
Today, the nike shox basketball shoes

are popular around the world. wholesale nike shox shoes

started out as an American company, but have since expanded around the
globe. They're now available in 120 countries. shox r4

with an emphasis on walking shoes, the engineers at New Balance know
the importance of a proper fit and offer a wide range of widths
and sizes. Often recommended by podiatrists, nike running shoes

take an "endorsed by no one" stance, preferring to let their
technology and comfort sell their shoes instead of paying a
celebrity athlete to do it for them. Additionally, nike shox monster

are available in a variety of styles, each designed for different
needs-motion control, extra support, off road, use etc. New Balance
makes running, walking, tennis, cross-training and basketball shoes
for men and women, and also offers a line of kids' ...
timberland (220.161.165.xxx) 2010-02-27 17:01:49

mm Apparently, 21,000 boots imported by Timberland from Thailand have lead paint on the insole, violating federal lead paint
rules. I'm guessing this paint was used for printing of the
logo inside the boot. Please note Dear Readers, these are Timberland waterproof and children are particularly sensitive to the effects of lead and lead
poisoning. Avoid a lead paint accident that could injure or hurt
your child.
When I first saw this I thought, "How do you make Timberland work boots? Where's the risk of accident or injury?" Then I read further and saw,
"lead paint." The headline reads:"Timberland Recalls Timberland for kids Due to Violation of Lead Paint Standard"The U.S. Consumer Product
Safety Commission announced a voluntary recall of these boots.
Consumers should stop using recalled products immediately.
Only registered users can write comments!

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 )