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


IV.    Navigasi Peta

Salah satu fasilitas yang pasti ada dalam sebuah aplikasi SIG adalah adanya tombol-tombol navigasi peta. Untuk melihat detil peta secara mudah, biasanya sebuah form yang menampilkan peta akan punya tombol-tombol  Zoom in, Zoom out, Full Extent dan Pan.

Zoom In dilakukan untuk membuat peta terasa lebih detail. Dengan zoom in, skala akan diperkecil. Saat dilakukan zoom in seakan-akan kita akan lebih didekatkan pada permukaan bumi. Fungsi zoom out adalah kebalikan dari zoom in, yaitu membuat peta lebih tidak detail. FullExtent adalah tombol yang membuat peta menjadi terlihat seluruhnya. Misal setelah melihat detail, pengguna ingin melihat peta keseluruhan dengan cepat, maka dia dapat menekan tombol full extent, daripada melakukan zoom out berkali-kali sampai batas full.  Sementara Pan adalah fungsi untuk menggeser peta. Fungsi pan biasanya dilakukan setelah pengguna melakukan zoom in. Misal saat pengguna ingin melihat lebih detail , dia melakukan zoom in, ternyata dia juga ingin melihat melihat detail yang disebelah kanan dari yang tampil sekarang, maka dia dapat melakukan penggeseran peta.

Untuk memberikan fasilitas navigasi diatas, tambahkan tombol-tombol pada Form. Biasanya ditaruh di atas peta, dan berbentuk tombol-tombol yang bergambar atau  suatu toolbar yang bergambar. Gambar-gambar yang sering dipakai adalah seperti kaca pembesar, tangan, dan sebagainya. Untuk penyederhanaan masalah, disini akan ditambahkan command button biasa, ditaruh diatas peta, menjadi seperti gambar 6 dibawah.
 
Gambar 5. Bentuk form untuk contoh program navigasi peta

Proses Untuk Zoom In, Zoom Out, dan Pan, dilakukan dengan cara melakukan aktifitas mouse pada object Map. Ketiganya akan sama-sama dilakukan pada saat event MouseDown. Untuk itu, kita perlu memberikan sebuah tanda, katakanlah semacam mode, yang jika diklik tombol zoom in, berarti mode menjadi ‘zoomin’, menekan tombol zoom out, mode menjadi ‘zoomout’, dan pan menjadi mode ‘pan’. Agar kelihatan mode yang aktif sekarang adalah mode tertentu, maka saat men-set mode, sekalian dilakukan pengubahan bentuk pointer Mouse. Kebetulan MapObjects menyediakan bentuk pointer mouse untuk mode-mode tadi, yaitu moZoomIn, moZoomOut, dan moPan.

Karena butuh menyimpan mode yang sedang aktif, dan bisa diakses oleh banyak sub di satu form, maka kita butuh variabel yang bersifat global yang  disini akan kita namai dengan pmode.

dim Pmode as String

Dan, misalkan tombol-tombol tadi berturut-turut bernama command1, command2, command3, dan command4, maka kode untuk masing-masing tombol saat diklik adalah seperti dibawah.

Private Sub Command1_Click()
    pMode = "zoomin"
    Map1.MousePointer = moZoomIn
End Sub
Private Sub Command2_Click()
    pMode = "zoomout"
    Map1.MousePointer = moZoomOut
End Sub
Private Sub Command4_Click()
    pMode = "pan"
    Map1.MousePointer = moPan
End Sub

Setelah men-set mode, yang dilakukan selanjutnya adalah mengisikan kode untuk tiga macam mode diatas. Kode ini diisikan pada event MouseDown, sehingga kita butuh untuk mengecek dulu mode apa yang sedang aktif, dan kemudian apa yang harus dilakukan pada saat mode ini. Disini akan digunakan pengecekan dengan Select Case seperti dibawah:

Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As _
                           Single, Y As Single)
Select Case pmode
Case "zoomin"
    'kode untuk melakukan zoom in
Case "zoomout"
    'kode untuk melakukan zoom out
Case "pan"
    'kode untuk melakukan pan
End Select
End Sub

Property yang digunakan untuk pengaturan seberapa zoom peta yang ditampilkan adalah property Extent pada object map. Property ini menunjukkan seberapa besar “bingkai” pada peta yang sedang aktif saat ini. Untuk mendekatkan peta, bingkai ini diperkecil. Sebaliknya, untuk menjauhkan peta, bingkai ini diperbesar.

Proses pengguna melakukan zoom in adalah pengguna membuat suatu bingkai berbentuk rectangle  yang kemudian rectangle tadi dijadikan bingkai yang aktif. Untuk membuat bingkai ini, pengguna ‘dipaksa’ untuk membuat rectangle pada map. Disini digunakan fungsi TrackRectangle dan bentuk rectanglenya disimpan dalam sebuah variabel, yang dalam program kita adalah variabel rect. Variabel rect ini kemudian dijadikan extent peta sekarang. Kode untuk melakukan ini adalah seperti dibawah :

    Dim rect As MapObjects2.Rectangle
    Set rect = Map1.TrackRectangle
    Map1.Extent = rect

Berbeda dengan saat zoom in yang memerlukan pembuatan luasan (rectangle) dahulu sebelum dilakukan zoom in, pada zoom out pengguna tinggal melakukan klik pada suatu lokasi di peta. Setelah dilakukan klik, extent peta akan diambil, kemudian diperbesar, dan dikembalikan lagi ke extent aktif. Untuk memperbesar rectangle ( dan juga untuk memperkecil) dapat digunakan fungsi ScaleRectangle dengan parameternya adalah berapa pengali skala yang diinginkan. Untuk menjauhkan peta, maka kita perlu untuk memperbesar rectangle, maka diberi skala yang lebih dari 1. Kode untuk melakukan ini  adalah seperti dibawah :

    Dim rect2 As MapObjects2.Rectangle
    Set rect2 = Map1.Extent
    rect2.ScaleRectangle 1.5
    Map1.Extent = rect2

Untuk melakukan Pan, kita tinggal memanggil fungsi Pan pada object map.

    Map1.Pan

Jadi kode lengkap yang ada pada event MouseDown adalah seperti berikut:

Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As _
                            Single, Y As Single)
Select Case pMode
Case "zoomin"
    Dim rect As MapObjects2.Rectangle
    Set rect = Map1.TrackRectangle
    Map1.Extent = rect
Case "zoomout"
    Dim rect2 As MapObjects2.Rectangle
    Set rect2 = Map1.Extent
    rect2.ScaleRectangle 1.5
    Map1.Extent = rect2
Case "pan"
    Map1.Pan
End Select
End Sub

Kita masih menyisakan satu tombol yang belum berfungsi. Yaitu tombol FullExtent. MapObjects selalu menyimpan data besarnya bingkai yang  diperlukan untuk menampilkan seluruh layer-layer peta dalam keadaan terlihat semua (full). Property yang menyimpan rectangle ini adalah property FullExtent. Maka, untuk menjadikan peta terlihat full, tinggal dilakukan pengisian nilai Extent dengan nilai dari FullExtent. Dilakukan pada saat event click pada tombol full extent.

Private Sub Command3_Click()
    Map1.Extent = Map1.FullExtent
End Sub

Sampai disini, program SIG kita sudah mempunyai fungsi-fungsi navigasi standar, yaitu zoom in, zoom out, full extent, dan pan. Gambar 6 adalah gambar peta saat selesai melakukan zoom in.

 
Gambar 6. Contoh hasil proses zoom in




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)