Rasanya otai-otai GIS semua tahu labeling adalah satu kaedah
untuk memaparkan attribut di atas peta GIS kita. Kebiasaannya kita paparkan
attribut ni bila nak design map untuk print, contoh nak letak nama tempat, nama
jalan, nama sungai dan lain-lain. Cara paling basic nak buat labeling dalam
ArcMap adalah macam step di bawah ni :-
Penerangan gambar :-
- Dalam Table of Contents, right click layer yang nak
dipaparkan label.
- Pilih Properties...
- Klik tab Labels, kemudian check Label features in this layer
- Pada ruangan Label Field:, pilih field yang menyimpan
attribut untuk dilabelkan.
- Klik OK.
Di dalam contoh ni, saya memaparkan label attribut nama
jalan. Hasilnya adalah seperti di bawah ni..
OK, itu adalah kaedah paling basic untuk label attribut
dalam ArcMap. Tapi sebenarnya dalam ArcMap ni, ada beberapa kaedah yang lebih
advance yang boleh kita gunakan untuk paparkan attribut. Mungkin ada beberapa
kes dimana kita nak paparkan attribut yang tak boleh dihandle menggunakan
kaedah basic. Contohnya katakan saya nak labelkan nama jalan hanya untuk jalan
yang panjangnya kurang dari 500m sahaja. Di sini saya boleh gunakan kaedah yang
dinamakan Labeling Expression.
Untuk gunakan Labeling Expression ni, kita kena ada basic
serba sikit tentang programming script, sebabnya...kita kena tulis script dalam
ruangan Labeling Expression tu. Terdapat tiga programming script yang Labeling
Expression ni support iaitu Java Script, Python Script dan VB Script. So kita
pilih lah mana-mana coding script yang kita familiar dan selesa.
|
Contoh dialog Label Expression |
OK..berbalik pada problem tadi. Macamana saya nak tulis
coding script untuk paparkan nama jalan yang panjangnya kurang dari 500m tadi.
Di dalam table layer jalan saya, nama jalan disimpan di dalam field NAM
manakala info panjang setiap line jalan terdapat di dalam field SHAPE_Length.
Mula-mula buat step ni dulu :-
Penerangan gambar :-
- Pada tab Labels dalam dialog Layer Properties, klik butang
Expression...
- Pada dialog Label Expression, check kotak Advanced.
- Anda akan lihat default script dipapar di ruangan programming
script.
OK, sekarang gantikan script di dalam ruangan programming
script tu dengan VB script di bawah ni (copy paste jer...)
Function FindLabel ( [NAM],[SHAPE_Length] )
if [SHAPE_Length] < 500 then
FindLabel = [NAM]
end if
End Function
Ruangan programming script dalam dialog
Label Expression anda sepatutnya akan kelihatan seperti di bawah ni :-
Klik OK dan lihat hasilnya. Anda
akan lihat nama jalan yang dipaparkan akan berkurangan kerana hanya nama jalan
yang panjang jalannya kurang dari 500m sahaja dilabelkan (mcm biasa, klik kat gambar kalau kurang clear).
|
Perbandingan jumlah label sebelum dan selepas menggunakan script Labeling Expression |
Kalau anda sifu dalam programming,
sebenarnya banyak lagi yang anda boleh buat dengan menggunakan kaedah Labeling
Expression ni. Contohnya saya boleh paparkan label teks "JALAN BANDONG" dalam map
tu sebagai "Jln Bandong" tanpa saya perlu edit attribut di dalam table layer
jalan saya. Di sini saya share contoh script macamana nak buat tu. Script ni pun saya download dari ESRI forum je dan modify sikit-sikit ...
Function
FindLabel ( [NAM],[SHAPE_Length] )
FindLabel = PCase([NAM])
End Function
Function
PCase(strInput)
Dim
iPosition
Dim iSpace
Dim
strOutput
iPosition =
1
Do While
InStr(iPosition, strInput, " ", 1) <> 0
iSpace = InStr(iPosition,
strInput, " ", 1)
strOutput = strOutput &
UCase(Mid(strInput, iPosition, 1))
strOutput = strOutput &
LCase(Mid(strInput, iPosition + 1, iSpace - iPosition))
iPosition = iSpace + 1
Loop
strOutput = strOutput &
UCase(Mid(strInput, iPosition, 1))
strOutput = strOutput &
LCase(Mid(strInput, iPosition + 1))
totalLen = Len(strOutput)
if Left(strOutput,5) = "Jalan" then
str = "Jln"
nam = str & Right (strOutput,
totalLen - 5)
PCase = nam
elseif Left(strOutput,6) = "Lorong"
then
str = "Lrg"
nam = str & Right (strOutput,
totalLen - 6)
PCase = nam
end if
End Function
Seperti
biasa copy script tu dan paste masuk dalam ruangan programming script seperti step sebelum ni. Anda
akan dapat hasilnya seperti di bawah pula. Jika sebelum ni label nama-nama jalan semuanya dipaparkan sebagai Uppercase, sekarang ia dipaparkan dengan kombinasi Uppercase dan Lowercase.
Kalau anda
tak expert dalam programming tapi tau serba sikit macamana nak ubah coding,
google je..kadang-kadang ada sample script yang otai di luar sana dah develop yang
kita boleh adjust sikit untuk fit dengan keperluan kita.
Selamat
mencuba.