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

VIII.    Searching

Identify digunakan untuk melihat keterangan dari suatu lokasi yang ingin diketahui data attributnya. Atau bisa juga untuk melihat data foto atau video jika di-link-kan ke suatu object. Jadi pengguna melihat data non spatial dari data spatial. Tapi kadang juga pengguna yang tidak begitu hapal dengan peta yang dilihatnya lebih memilih melakukan pencarian data spatial dari data nonspatialnya. Untuk keperluan inilah disediakan tool Searching.

Proses searching dilakukan pada isi attribut-atrribut dari layer. Pada contoh program berikutnya, layer yang akan dicari adalah layer propinsi atau layer kota. Keduanya akan dicari pada isi dari field Name-nya. Program akan mengambil record-record yang isi field name ini yang mengandung suatu string yang dimasukkan pengguna dan dimasukkan dalam sebuah listbox. Kemudian dari listbox tadi, pengguna dapat memilih salah satu nama propinsi (atau kota) dan melihat posisinya dalam peta. Pada layer propinsi, peta akan fokus ke propinsi yang ingin dilihat dan propinsi ini akan berkedap-kedip, sedang untuk kota hanya akan berkedap-kedip saja.

Berikut adalah modifikasi tampilan untuk menambahkan fungsi searching

 
Gambar14. Desain tampilan yang telah ditambah proses searching

Terdapat combobox di bagian kanan atas yang telah disiapkan pilihannya yaitu propinsi dan kota. Textbox dibawahnya digunakan untuk menerima input dari pengguna. Tombol dibawahnya untuk memulai pencarian yang hasilnya dimasukkan dalam listbox dibawahnya. Setelah terdapat hasil di listbox, isi listbox dapat digunkan untuk memilih kota / propinsi tertentu untuk dilihat dipeta lewat tombol Fokus dibawah list.

Untuk melakukan searching berdasar nilai non spatial dapat dilakukan dengan fungsi SearchExpression. Sama dengan SearchByDistance, fungsi ini juga mengembalikan sebuah recordset. Parameter untuk fungsi SearchExpression ini adalah sebuah kalimat query tapi hanya kalimat yang berada setelah “where”. Jadi semisal jika query yang biasanya untuk mencari propinsi yang nama propinsinya adalah ‘tabasco’ adalah “SELECT * FROM states WHERE name=’tabasco’”, dalam fungsi ini cukup ditulis “name=’tabasco’” saja.

Berikut adalah program saat pengguna melakukan pengisian pada textbox, dilanjutkan klik pada tombol Mulai.

Private Sub Command7_Click()
Dim L As MapLayer
Dim LName As String
Dim rec As mapobjects2.Recordset
List1.Clear
Set L = Map1.Layers(Combo1.Text)
Set rec = L.SearchExpression("Name Like '%" & Text1.Text & "%'")
While Not rec.EOF
    List1.AddItem rec.Fields("Name").ValueAsString
    rec.MoveNext
Wend
End Sub


Berikutnya setelah isi list berisi nama propinsi/kota yang sesuai kriteria, pengguna dapat memilih salah satu dan menekan tombol fokus untuk melihat lokasinya di peta. Untuk melakukan ini data nonspatial pada layer di query lagi, hanya kali ini tidak menggunakan LIKE tetapi menggunakan “=” agar hasil yang terlihat dipeta adalah benar-benar object yang bernama persis seperti yang dipilih. Query ini akan menghasilkan recordset juga dan akan diambil bentuk spatialnya untuk di fokuskan dan di kelap-kelipkan. Untuk membuat peta menjadi fokus ke object terpilih dapat dilakukan dengan cara mengubah extent peta menjadi extent object terpilih. Sedang untuk membuat kelap-kelip digunakan perintah FlashShape yang mempunyai parameter object apa yang akan dibuat kalp-kelip, dan berapa kali kelap-kelip akan terjadi. Berikut adalah kode pada tombol Mulai:

Private Sub Command6_Click()
Dim pilih As String
Dim rec As mapobjects2.Recordset
pilih = List1.List(List1.ListIndex)
Set L = Map1.Layers(Combo1.Text)
Set rec = L.SearchExpression("Name='" & pilih & "'")
While Not rec.EOF
    If Combo1.Text = "propinsi" Then Map1.Extent = rec.Fields("Shape").Value.Extent
    Map1.Refresh
    Map1.FlashShape rec.Fields("Shape").Value, 3
    rec.MoveNext
Wend
End Sub

Contoh Hasil dari proses searching yang kemudian dilanjutkan dengan melihat lokasi object hasil searching dapat dilihat pada gambar 16 berikut:

 
Gambar 16. Contoh hasil proses searching






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)