|
Page 5 of 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
|
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