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

VII.    Identify

Tool standar berikutnya adalah tool untuk melihat data Tabular dari object yang dipilih. Dalam Arcview, fungsi ini disebut dengan Identify, dan kita akan mengikuti standar penamaan ini. Proses Identify dilakukan dengan melakukan klik pada suatu posisi dalam peta. Dari posisi ini akan diambil keterangan dari object yang diklik. Dalam contoh berikutnya keterangan object yang akan ditampilkan adalah isi dari field Name pada Kota dan Propinsi, dan field Route pada layer Jalan. Untuk layer propinsi diambil juga luas dari propinsi yang terpilih, dan pada layer jalan diambil juga panjang jalan.

Dengan cara yang sama dengan Identify ini, kita dapat mengambil isi field apapun dari shapefile. Seringkali dalam shapefile hanya ada kode object saja, sedang keterangan-keterangan lainnya disimpan dalam database non spatial seperti MS Access, SQL Server, atau Oracle. Jika seperti ini bentuknya, maka saat Identify kita ambil kode object, kemudian kita query ke database non spatial tadi untuk mencari record yang field kode objectnya sama dengan yang terambil tadi. Jadi tidak masalah apabila data keterangan berada pada database diluar shapefile. Cara ini juga yang digunakan untuk mengkonekkan object tertentu di peta dengan data foto , video, atau yang lainnya.

Proses identify dilakukan saat event MouseDown pada object map, seperti halnya zoom in, zoom out, dan pan. Jadi kita akan memerlukan suatu mode yang menunjukkan bahwa yang akan berlaku saat ini saat klik di peta adalah untuk fungsi Identify. Dan agar tampilan lebih bagus, saat mengisi mode, kita juga mengubah bentuk pointer mouse dengan moIdentify. Berikut adalah bentuk desain form untuk contoh identify.

 
Gambar 13. Desain tampilan untuk Identify

Kode pertama yang harus ditambahkan adalah pada saat tombol Identify diklik:

Private Sub Command5_Click()
    pMode = "identify"
    Map1.MousePointer = moIdentify
End Sub

Selanjutnya dalam event MouseDown ditambah dengan case jika mode aktif adalah identify. Untuk proses pengambilan data attribut (non spatial) dari suatu object dapat dilakukan dengan beberapa cara. Jika akan mengambil object yang dekat dengan lokasi klik, dapat digunakan fungsi SearchByDistance milik object MapLayer. Fungsi ini akan mengembalikan recordset yang ada pada suatu shapefile yang dekat dengan suatu shape tertentu dan pada jarak tertentu. Shape disini adalah point yang dibentuk dengan fungsi ToMapPoint, sedang jarak diisi suatu nilai double yang besarnya akan menentukan seberapa jauh radius dari object2 dalam layer dari point tadi yang akan diambil datanya. Semakin besar jarak berarti semakin besar radius dan membuat hasil klik kurang spesific karena mengembalikan banyak object. Sebaliknya jika terlalu kecil akan membuat kita sulit untuk mendapatkan informasi dari suatu object karena jaraknya harus tepat dengan klik kita.
Recordset yang dikembalikan dari hasil SearchByDistance memiliki field khusus yang digunakan untuk mengambil nilai spatial object. Nama field ini adalah field “Shape” yang mengeluarkan object point, line, atau polygon, tergantung dari tipe layernya. Untuk mengambil panjang jalan, dapat dilakukan dengan cara mengambil property length dari object Line yang ada dalam field shape ini, sedang untuk mengambil luas, dilakukan dengan cara memanggil property Area. Karena peta mexico yang kita pakai menggunakan satuan derajat, maka untuk panjang perlu dikalikan dengan suatu konstanta yang membuat nilai derajat menjadi satuan meter. Untuk daerah katulistiwa, satu derajat kurang lebih sama dengan 110 km.

Dalam contoh, akan dilakukan looping terlebih dahulu terhadap semua layer. Masing-masing layer akan disearch dan keterangan-keterangan objectnya akan ditampung dalam suatu string dan dikeluarkan dalam messagebox. Berikut adalah kode yang perlu ditambahkan dalam event MouseDown dalam object map, melengkapi kode-kode untuk zoom in, zoom out, dan pan.

Case "identify"
    Dim i As Long
    Dim L As MapObjects2.MapLayer
    Dim rec As MapObjects2.Recordset
    Dim s As String
    Dim P As MapObjects2.Point
    Dim FName As String
    Set P = Map1.ToMapPoint(X, Y)
    For i = 0 To 2
      '0=cities, 1=roads, 2=states
      If i = 0 Then
        s = s & "Kota:" & vbCrLf
        FName = "Name"
      End If
      If i = 1 Then
        s = s & "Jalan:" & vbCrLf
        FName = "Route"
      End If    
      If i = 2 Then
        s = s & "Propinsi:" & vbCrLf
        FName = "Name"
      End If
      Set L = Map1.Layers(i)
        Set rec = L.SearchByDistance(P, 0.1, "")
        While Not rec.EOF
            s = s & vbTab & rec.Fields(FName).ValueAsString
            If i = 1 Then s = s & ", Panjang=" & _ Format(rec.Fields("Shape").Value.Length * 110, "0") & "Km"
            If i = 2 Then s = s & ", Luas=" & _
Format(rec.Fields("Shape").Value.Area * 110 * 110, "0") & "Km2"            
            s = s & vbCrLf        
        Wend
      
    Next
    MsgBox s


Untuk mengetes program, klik-lah pada suatu titik dalam peta. Jika didekat titik klik tadi ada jalan, maka akan muncul rute-rute jalan tadi. Jika lokasi yang diklik dekat dengan. suatu kota, maka akan muncul nama-nama kota yang dekat dengan klik tadi. Contoh tampilan setelah melakukan identify ini dapat dilihat pada gambar 14.
 
Gambar 14. Contoh hasil saat melakukan Identify




Last Updated ( Thursday, 26 July 2007 )
 
< Prev   Next >
 
 
(C) 2010 daniel hary prasetyo
Free Joomla Template designed by funky-visions.de
 

articles (a-z order)