Sebelum saya teruskan topik ni, anda semua mesti faham dulu
konsep query ataupun carian maklumat di dalam pangkalan data. Kalau rasa-rasa
tak sure, rujuk dulu topik query yang saya post sebelum ni di link sini. OK, pernah
tak anda hadapi situasi macam ni.... anda nak buat map untuk menunjukkan
sesuatu kawasan mukim atau daerah sahaja, tapi data yang anda ada tu menunjukkan
keseluruhan negeri. Nak memudahkan faham
apa maksud yang saya cuba sampaikan ni, cuba perhatikan gambar di bawah. Gambar
(A) menunjukkan keadaan data saya sekarang.. ada layer mukim, daerah dan sungai
untuk keseluruhan Negeri Sembilan.. tapi saya nak cuba buat map macam dalam gambar (B).. menunjukkan layer mukim, daerah
dan sungai di dalam daerah Kuala Pilah sahaja.
Sebenarnya data yang dipaparkan pada gambar (B) adalah data
yang sama yang dipaparkan pada gambar (A)..tanpa buat apa-apa proses editing
atau analisis overlay. Mungkin ada yang
cakap... "owhh nak buat data jadi macam gambar (B) tu senang je, run saja geoprocessing
overlay CLIP atau INTERSECT..."
OK... betul juga.. tapi proses geoprocessing tu akan menghasilkan layer
yang baru.. maksudnya anda akan dapat layer baru untuk sungai, daerah dan
mukim.
Ada satu lagi cara yang lebih mudah.. tak perlu run
geoprocessing, tak perlu editing nak delete polygon or line... iaitu
menggunakan kaedah Definition Query... ni yang saya nak share untuk topik kali
ini.
Konsep Definition Query
Kalau anda familiar dengan carian maklumat menggunakan
Attribute Query di dalam ArcMap, kaedah Definition Query ni sebijik sama macam
Attribute Query. Kalau Attribute Query tu, anda buka window Select by
Attributes tu, pastu buat query menggunakan SQL statement kan?? Macam contoh
gambar bawah ni...
So kalau sebijik sama, apa bezanya?? Bezanya dari segi
result query yang dipaparkan. Lihat contoh perbezaan result seperti di bawah.
Perbandingan result Attribute Query dan Definition Query |
Dalam gambar (A), saya buat carian daerah Kuala Pilah
menggunakan kaedah Attribute Query. Hasilnya, daerah Kuala Pilah di highlight
warna outline biru (default color selection ArcMap) di atas peta... tapi
daerah-daerah lain masih dipaparkan. Dalam gambar (B) pula, saya buat carian
yang sama, tapi menggunakan kaedah Definition Query. Hasilnya hanya polygon
daerah Kuala Pilah sahaja dipaparkan... daerah-daerah lain tu hilang.. bukan
maksudnya dia delete, cuma dia sorokkan sekejap dan ArcMap cuma paparkan
polygon yang saya query sahaja. Tulah bezanya.
Jadi kalau anda lihat penerangan saya tadi, nak buat
Definition Query ni, syarat pertama sekali, data anda tu mesti ada attribute
yang boleh anda querykan. Contohnya dalam ketiga-tiga layer mukim, daerah dan
sungai saya tadi, saya ada attribute nama daerah. Sebab tu saya boleh buat query daerah Kuala
Pilah untuk ketiga-tiga layer tadi. Kalau takda attribute yang boleh dibuat
query nak buat macamana?? Kalau macam tu..terpaksalah anda buat geoprocessing
overlay, guna CLIP ke, INTERSECT ke...
Cara Nak Buat Definition Query
OK, kalau dah faham konsep dia, macamana nak buat query ni.
Mudah saja. Caranya seperti gambarajah di bawah. Kalau gambar tu tak clear, klik kat gambar tu untuk besarkan..
Penerangan gambarajah :-
1. Right click layer yang nak buat Definition Query dalam Table
of Content ArcMap pastu dan pilih Properties
2. Bila dapat window Layer Properties, klik tab Definition
Query
3. Klik butang Query Builder
4. Buat proses query macam kaedah Attribute Query
5. Hasil query akan dipaparkan dalam ruangan Definition Query.
Semak dulu syntax dalam ruangan tu betul ke tak sebelum klik OK.
Dalam contoh tadi, saya buat Definition Query untuk layer
daerah. Di dalam query builder tu, saya buat query [DISTRICT] = 'Kuala Pilah'..
hasilnya seperti di bawah ni.
Kalau anda lihat result tu, hanya polygon daerah Kuala Pilah
dipaparkan. Tapi mukim dan sungai masih dipapar untuk keseluruhan Negeri
Sembilan. Jadi saya perlu ulang proses tadi, cuma kali ini proses Definition Query
yang perlu saya buat adalah untuk layer mukim dan sungai pula. Bila saya dah
buat query untuk ketiga-tiga layer tu, dapatlah result seperti di bawah ni.
Senang je kan.. tak payah dah buat analisis CLIP, cuma
syaratnya macam saya bagitau tadi ler, mesti ada attribute yang boleh kita
query.
penghantaran data selalunya dlm format .gdb .Jadi biasanya saya akan buat Definition Query>Export Data>Dissolve>Clip.
ReplyDeleteen azlan, kalau nak buat query lebih dari satu contohnya kapasiti pelajar sekolah <= 2000 = 2000 or 1340 or 400. begini kah?
ReplyDeleteSQL query mesti bermula dengan field, operator dan value. Maksudnya kapasiti <= 2000 or kapasiti = 1340 or kapasiti = 400. Tapi secara logiknya dari statement tu, kapasiti <= 2000 saja dah cukup sebab 1340 dan 400 adalah nilai yg kurang dari 2000.
Delete