You are on page 1of 23

Nhm em ang c gng c xong ti liu va kim c v Mapserver !

eo"erver v # c$i %emo &

MAPSERVER
1. Tng quan v mapserver
1.1. Gii thiu
Mapserver l m't m(i tr)*ng m+ ngu,n m- cho ph.p vi/c x01 %2ng nh3ng 4ng %5ng x6 l7 %3 li/u kh(ng gian trn internet& N c th8 )9c ch:1 nh) # ch);ng tr<nh =!> ho?c th(ng @ua Mapscript AhB tr9 nhiu ng(n ng3 lCp tr<nh nh) Derl D1thon EF& Mapserver kh(ng phGi l # h/ thng c H1 I c$c ?c tJnh cIa h/ thng th(ng tin Ka l7 A!>"F v cLng kh(ng ph$t tri8n theo Knh h)Mng mapserver tt nhNt - i8m sinh ra %3 li/u kh(ng gian nh) AOGn , h<nh Gnh %3 li/u vector EF trn m(i tr)*ng PeO& Ngoi vi/c giQp Knh vK %3 li/u kh(ng gian t:o OGn , Ka h<nh mapserver c th8 Knh h)Mng ng)*i %Rng n n'i %ung& SJ %5 minnessota TNU AhttpVWWmapserver&gis&umn&e%uWF cung cNp ng)*i %Rng vMi h;n #XXXX trang PeO OGng , O$o c$o th(ng @ua # 4ng %5ng %u1 nhNt& Mapserver kh-i Hu )9c ph$t tri8n O-i %2 $n Yniversit1 oZ Minesota AYMNF [orNet c'ng t$c vMi N\"\ v AMinesota Tepartment oZ Natural UesourcesF& "au n )9c sh3u O-i %2 $n ]erra">D m't %2 $n )9c hB tr9 O-i N\"\& ^i/n t:i mapserver l m't %2 $n cIa _"!eo v )9c ph$t tri8n O-i # nhm ph$t tri8n gHn `X n)Mc khp th giMi& N )9c %u1 tr< v thm c$c ?c tJnh O-i nhiu nhm tB ch4c kh$c nhau v )9c @uGn l7 On trong _"!eo O-i Mapserver Droaect "teering committee A)9c thnh lCp O-i nh3ng ng)*i ph$t tri8n v nh3ng ng)*i ph0n phiF&

1.2. !" #$" t%nh


"inh h<nh Gnh OGn , ph4c t:p& ^<nh Gnh ph5 thu'c vo tb l/&

]n c$c h<nh Gnh& cuNt Knh %:ng c th8 s6a Bi ho?c theo khu(n mdu& Dhong ch3 ki8u th2c A]rue]1peF& ]2 'ng sinh c$c thnh phHn cIa OGn , Atb l/ OGn , tham khGo chQ thJchF& ^e tr9 c$c c$c ng(n ng3 script v m(i tr)*ng ph$t tri8n phB Oin AD^D Derl D1thon UuO1 fava v =gF& ^e tr9 nhiu h/ iu hnh Ahinux iin%oPs Mac _" c "olaris EF& ^e tr9 nhiu %:ng raster v vector& ]>[[W !eo ]>[[ jDDhk v nhiu Knh %:ng kh$c th(ng @ua !T\h& j"U> shapeZiles Dost!is j"U> \rc"Tj _racle "patial M1 "lhE th(ng @ua _U!& ]heo ?c tG PeO _pen !eo"patial =onsortium A_!=FV iM" AclientWserverF i[" AclientWserverF iM= i=" [ilter jnco%ing "hT !Mh "_"& ^e tr9 ph.p chiu OGn ,V h;n #XXX h/ chiu th(ng @ua th) vi/n proa&m Mapserver tu0n theo chunn _pen !eospatial =onsortium A_!=F g,m ieO Map "ervice AiM"F v ieO [eature "ervice Ai["F& Mapserver kt ni vMi Dostgres"lh v m- r'ng Dost!>" Ahe tr9 %3 li/u !>"F M1"lh v m- r'ng M1!>" E

1.&. 'u tr(" ")a mapserver


o;n giGn nhNt c th8 hi8u mapserver nh) l m't ch);ng tr<nh =!> )9c ?t AinactiveF trong PeOserver& phi m c # re@uest g6i n mapserver n s6 %5ng th(ng tin )9c tru1n - re@uest YUh v trong mapZile 8 t:o h<nh Gnh cIa OGn , )9c 1u cHu& Ue@uest cLng c th8 trG v h<nh Gnh cho ghi chQ thanh co %+n OGn , tham chiu v gi$ trK )9c tru1n nh) l nh3ng Oin =!>& "; , kh$i ni/m cIa m't 4ng %5ng mapserver

*+nh 1, 'u tr(" mapserver

Mapserver c th8 )9c m- r'ng v iu chbnh tR1 vo ng)*i s6 %5ng& N c th8 )9c x01 %2ng 8 he tr9 nhiu %3 li/u nhCp v xuNt& oiu n1 )9c th2c hi/n khi mapserver )9c Oin %Kch&

1.&.1. Mapscript
Mapscript cung cNp # interZace %:ng script cho mapserver 8 cNu trQc x01 %2ng PeO v 4ng %5ng 'c lCp& Mapscript )9c s6 %5ng 'c lCp vMi =!> mapserver n l # mo%ule

c th8 loa% c$c ch4c nqng cIa mapserver )9c thm vo ng(n ng3 script m ng)*i s6 %5ng thJch nhNt& Mapscript hi/n t:i t,n t:i trong Dhp Derl D1thon UuO1 ]cl fava =g&

1.&.2. Cu trc ca 1 ng dng mapserver


M't 4ng %5ng mapserver ;n giGn g,m c$c thnh phHnV Map ZileV # ki8u cNu h<nh cNu trQc text cho 4ng %5ng mapserver& N Knh %:ng kJch th)Mc cIa OGng , chb cho mapserver Oit %3 li/u nrm - 0u v xuNt h<nh Gnh n 0u& N Knh nghsa c$c tHng cIa OGng , Oao g,m ngu,n %3 li/u s2 chiu v nh3ng k7 hi/u& Ac %:ng &mapF& T3 li/u Ka l7V mapserver c th8 s6 %5ng nhiu ki8u ngu,n %3 li/u Ka l7& M?t Knh l j"U> shapeZile& ]rang ^]MhV giao tip gi3a ng)*i s6 %5ng v mapserver& ]h)*ng )9c ?t trn PeO root& t %:ng ;n giGn nhNt mapserver c th8 )9c gi 8 ?t # h<nh Gnh OGn , tbnh trn trang html& o8 lm cho OGn , t);ng t$c h<nh Gnh )9c ?t trn # Zorm cIa trang html& =h);ng tr<nh =!> c tr:ng th$i stateless mei re@uest m n nhCn )9c l mMi v n kh(ng l)u nhM ONt c4 th4 g< v lHn cui n )9c t);ng t$c O-i 4ng %5ng cIa O:n& To mei lHn 4ng %5ng g6i 1u cHu n Mapserver n cHn tru1n th(ng tin nh) Anh3ng la1er )9c kJch ho:t vK trJ trn OGn , ki8u cIa 4ng %5ng EF trong # Zorm nn ho?c trong Oin cIa YUh& ]h)*ng c ` lo:i trang kh-i t:o v trang khu(n mdu& ]rang kh-i t:oV s6 %5ng Zorm vMi nh3ng Oin nn 8 g6i c0u tru1 vNn kh-i t:o n http server v mapserver& [orm n1 c th8 )9c ?c trn # trang kh$c ho?c )9c tha1 th O-i vi/c tru1n th(ng tin kh-i t:o th(ng @ua c$c Oin cIa YUh& ]rang khu(n mdu Ahtml templateFV iu khi8n c$c OGn , v chQ thJch xuNt O-i mapserver ch4a c$c khu(n mdu su hi/n ln OroPser& vrng nh3ng Oin tham chiu n Mapserver =!> trong Zile html mdu O:n cho ph.p Mapserver sinh ra c$c thnh phHn cIa OGn , vMi nh3ng gi$ trK lin @uan n tr:ng th$i hi/n hnh cIa 4ng %5ng Anh) tn h<nh Gnh OGn , tn h<nh Gnh tham chiu kJch th)Mc OGn , &&&F

khi n t:o trang html cho OroPser c& [ile mdu html n1 cLng @u1t Knh c$ch ng)*i s6 %5ng c th8 t);ng t$c vMi OGn , Aphng to thu nhw Knh vK tru1 vNnF& Mapserver =!>V nhCn 1u cHu v trG v c$c h<nh Gnh v %3 li/u& N nrm trong cgixOin ho?c th) m5c script cIa http server& Ng)*i s6 %5ng ieO server phGi c @u1n th2c thi - th) m5c ch4a Mapserver =!> v< l7 %o OGo mCt n kh(ng nn )9c ?t trong PeO root& ^]]D servserV ph5c v5 1u cHu cIa nh3ng trang html khi )9c t$c 'ng O-i PeO OroPser& ]a cHn # ^]]D server nh) l \pache ho?c MicrosoZt >nternet >nZormation "erver ?t trn m$1 ci mapserver&

1.-. !"h h./t #0ng ")a mapserver


Mapserver th)*ng ho:t 'ng phJa sau # 4ng %5ng PeO server& ieO server nhCn nh3ng 1u cHu OGn , v tru1n chQng n mapserver 8 t:o& Mapserver t:o ra h<nh Gnh OGn , )9c 1u cHu v tru1n n PeO server PeO server tru1n n n ng)*i s6 %5ng th(ng @ua PeO OroPser& ^<nh sau cho thN1 ng)*i s6 %5ng t);ng t$c vMi PeO server t:o 1u cHu g6i n ch);ng tr<nh mapserver& =h4c nqng chJnh cIa mapserver l c %3 li/u t nhiu ngu,n %3 li/u kh$c nhau v k.o c$c la1er l:i t:o thnh # Zile h<nh nh) # h<nh Gnh OGn ,& ^<nh Gnh sau cho thN1 ho:t 'ng c; OGn cIa # 4ng %5ng mapserver&

*+nh 2, *./t #0ng "1 23n ")a 1 4ng 56ng mapserver

M't la1er c th8 l h<nh Gnh t v/ tinh )*ng Oin giMi cIa # @uc gia ha1 # i8m th8 hi/n h<nh Gnh thnh ph chJnh& Mei lMp )9c )9c ?t - trn ho?c - %)Mi lMp kh$c v sau )9c in thnh %:ng PeO h<nh Gnh th0n thi/n cho ng)*i s6 %5ng& M't vJ %5 v vi/c ch,ng lNp lMp v @u$ tr<nh t:o OGn , )9c th8 hi/n - h<nh sau& ]rong O:n c th8 thN1 h<nh Gnh v/ tinh nh3ng con )*ng Ka i8m thnh ph nh+n cIa c$c thnh ph )9c sinh t2 'ng O-i Mapserver&

*+nh &, !" 7p 58 7iu

2. G9 mapserver
Mapserv l # ch);ng tr<nh O' phCn =!> cIa gi mapserver& N nhCn th(ng tin nhCp cIa ng)*i s6 %5ng v t:o ra h<nh Gnh ho?c tru1 vNn 1u cHu Are@uestsF& Mapserv c th8 nhCn th(ng tin nhCp t ng)*i %Rng th(ng @ua ph);ng th4c !j] ho?c D_"] v c th8 s6 %5ng # c$ch t);ng t$c ho?c nh) # m$1 sinh h<nh Gnh&

2.1. Gii thiu


M't s ghi chQ lin @uan n mapserver =!> ]n Oin kh(ng ph0n Oi/t ch3 hoa th)*ng&

]r)*ng h9p nhiu gi$ trK kt h9p vMi # Oin AvJ %5 nh) mapextF c$c gi$ trK )9c t$ch Oi/t vMi nhau nh* vo khoGng trng& N'i %ung cIa Oin )9c ki8m tra s2 t);ng thJch ki8u cIa %3 li/u v ' lMn khi )9c gi& vNt ky Oin =!> u c th8 )9c l)u v tham khGo n %z %ng th(ng @ua Zile khu(n mdu AtemplateF&

2.2. !" #iu :hi;n


M't s Oin =!> cIa ch);ng tr<nh mapserv )9c li/t k nh) sau >T{i%xstring|V m?c Knh mapserver sinh ra # session i% %u1 nhNt %2a trn th*i gian cIa h/ thng v process i%& >M!V tn )9c kt h9p vMi h<nh Gnh OGn , )9c s6 %5ng 8 l)u l:i nh3ng click cIa ng)*i s6 %5ng& SMi # 4ng %5ng =!> 01 l # Oin thit 1u& >M!jc]{minx|{min1|{maxx|{max1|V ph:m vi kh(ng gian cIa # h<nh Gnh l h<nh Gnh m ng)*i s6 %5ng c th8 thN1 trn OroPser& >M!"^\Dj{x# 1# x` 1` x} 1} E|V h<nh %:ng )9c trG v theo ta ' cIa h<nh Gnh& ^<nh %:ng # a gi$c )9c s6 %5ng cho m5c Jch tru1 vNn& Nhiu hi/n th2c AinstanceF )9c s6 %5ng chb 8 thm nh3ng phHn vo trong h<nh %:ng AshapeF %o c th8 t:o # h<nh %:ng vMi nh3ng le& o)9c s6 %5ng vMi nh3ng ch ' NlYjU~ v NlYjU~M\D& >M!">j{cols|{roPs|V kJch th)Mc tJnh theo pixel cIa h<nh Gnh& >M!c~{x|{1|V ta ' cIa click chu't th)*ng )9c s6 %5ng vMi f\S\ %2a trn phHn Hu mapserver& h\~jU{name|V tn cIa la1er khi n xuNt hi/n trn Zile map& !6i n mapserv tn cIa la1er v g$n gi$ trK tr:ng th$i A"]\]Y"F Orng on& h\~jU{name name E|V tn cIa nh3ng la1er )9c hi/n& ]n nh3ng la1er )9c t$ch Oi/t O-i khoGng trng& Sersion m&m tr- lnV tru1n h\~jU all su t2 'ng hi/n tNt cG c$c la1er&

M\D{Zilename|V )*ng %dn t);ng i n th) m5c =!> cIa Zile map )9c s6 %5ng& M\Djc]{minx|{min1|{maxx|{max1| M\Djc]AshapeFV pJch th)Mc kh(ng gian cIa # OGn , )9c t:o& = th8 )9c g$n gi$ trK shape nh) # l2a chn kh$c& ]rong tr)*ng h9p n1 kJch th)Mc cIa OGn , AmapextentF )9c g$n n kJch th)Mc cIa h<nh %:ng )9c chn& o)9c s6 %5ng vMi nh3ng tru1 vNn& M\D">j{cols|{roPs| V pJch c tJnh Orng pixel cIa h<nh Gnh )9c t:o& ^3u Jch trong vi/c cho ph.p ng)*i s6 %5ng tha1 Bi ' ph0n giGi cIa OGn , xuNt m't c$ch 'ng& M\D"^\Dj{x# 1# x` 1` x} 1} E| ^<nh %:ng trong h/ ta ' cIa OGn ,& M't h<nh a gi$c ONt ky )9c s6 %5ng cho nh3ng m5c Jch tru1 vNn& Nhiu hi/n th2c AinstanceF cIa a gi$c )9c thm vo h<nh AshapeF %o ta c th8 t:o # h<nh %:ng AshapeF t c$c le& o)9c s6 %5ng vMi - ch ' NlYjU~ v NlYjU~M\D& M\Dc~{x|{1| M\Dc~AshapeF M't i8m trong cRng # h/ ta ' nh) nh3ng Zile shape )9c s6 %5ng kt h9p vMi O' /m AOuZZerF ha1 tb l/ 8 x01 %2ng nn kJch th)Mc cIa OGn ,& = th8 )9c g$n # h<nh %:ng AshapeF nh) l # chn l2a kh$c& ]rong tr)*ng h9p n1 kJch th)Mc OGn , )9c g$n Orng vMi kJch th)Mc cIa h<nh %:ng )9c chn& o)9c s6 %5ng vMi nh3ng tru1 vNn& M>Nc M>N~ M\cc M\c~{numOer|V ]a ' nhw nhNtW lMn nhNt xW1 cIa kJch th)Mc kh(ng gian cho # OGn , mMi ha1 tru1 vNn& ]Cp nh3ng th(ng s n1 l thnh phHn cIa M\Djc]& M_Tj{value|V =h ' ho:t 'ng& vU_i"jV =h ' t);ng t$c H1 I n;i OGn , Aho?c nh3ng trang t);ng t$cF )9c t:o& o01 l ch ' m?c Knh& M\DV ]rG v OGn , )9c t:o& o)9c s6 %5ng On trong tag imgE Uj[jUjN=jV vGn , tham khGo )9c trG v& o)9c s6 %5ng On trong tag imgE&

"=\hjv\UV ]rG v thanh scaleOar& o)9c s6 %5ng On trong tag imgE hj!jNTV ]rG v h<nh Gnh chQ thJch& o)9c s6 %5ng On trong tag imgE __M>NV =hu18n n ch ' vU_i"j vMi __MT>U # __M_Y]V =hu18n n ch ' vU_i"j vMi __MT>U x# Uj[ ]n )9c kt h9p vMi h<nh Gnh OGn , tham khGo )9c s6 %5ng 8 l)u vK trJ click cIa ng)*i s6 %5ng& ]h2c s2 th< ` gi$ trK Oin reZ&x v reZ&1& oi vMi 4ng %5ng =!> th< 01 l Oin cHn thit khi OGn , tham khGo )9c s6 %5ng& Uj[c~{x|{1|V ]a ' tJnh Orng pixel vK trJ cIa vi/c click chu't # lHn trn h<nh Gnh tham khGo& o)9c s6 %5ng kt h9p vMi fava %2a trn phHn Hu cIa mapserver& __M{numOer| ]b l/ phng toWthu nhw s6 %5ng khi t:o OGn , mMi& !i$ trK lMn h;n X t);ng 4ng vMi vi/c phng to X t);ng 4ng vMi canh gi3a O. h;n X t);ng 4ng O-i thu nhw& __M c th8 )9c s6 %5ng tha1 th cho s2 kt h9p cIa __MT>UW__M">j& Si/c phng to thu nhw ph5 thu'c vo M>N__MWM\c__M )9c cNu h<nh khi Oin %Kch mapserver Ax`W` l m?c KnhF& __MT>U{x#X#|V !i$ trK X t);ng 4ng vMi canh gi3a x# t);ng 4ng vMi vi/c thu nhw # t);ng 4ng vMi phng to& __M">j{numOer|V o' lMn cIa phng toWthu nhw& "6 %5ng vMi __MT>U&

&. !" th<nh ph=n ")a map >i7e


&.1. Gii Thiu
MapZile l thnh phHn trung t0m cIa mapserver& N Knh nghsa nh3ng mi @uan h/ gi3a c$c i t)9ng i8m cIa mapserver n n;i %3 li/u )9c l)u tr3 ,ng th*i x$c Knh mi thnh phHn )9c vu nh) th no trn OGn ,&

&.2. ?p @"7assA
oKnh nghsa c$c class theo chI cho # lMp Ala1erF& Mei lMp la1er phGi c # class& ]rong tr)*ng h9p c nhiu h;n # class& luan h/ thnh vin )9c x$c Knh s6 %5ng nh3ng gi$ trK thu'c tJnh ha1 nh3ng Oi8u th4c& vt Hu vMi t kha =h\"" v kt thQc vMi t kha jNT& v\=p!U_YNT=_h_U{r|{g|{O|V Mu s6 %5ng cho nh3ng k7 hi/u kh(ng trong sut& =_h_UV Mu s6 %5ng 8 vu nh3ng ?c tJnh AZeatureF& jcDUj"">_N{string| m ki8u cIa nh3ng Oi8u th4c )9c Knh nghsa 8 x$c Knh mi @uan h/ thnh vin cIa class& "o s$nh chuei Oi8u th4c chJnh @u1 Oi8u th4c logic ;n giGn nh3ng hm chuei& Nu kh(ng c Oi8u th4c th< tNt cG c$c ?c tJnh thu'c vo class n1& Nh3ng so s$nh chuei th< ph0n Oi/t ch3 hoa v th)*ng v )9c tJnh to$n nhanh nhNt& ph(ng cHn c$c t kt thQc tu1 nhin chuei phGi )9c ?t trong ngo?c k.p ho?c ;n nu chQng ch4a c$c k7 t2 ?c Oi/t& Anh) l thi @uen tt vi/c ng ngo?c k.p tNt cG c$c chuei )9c khu1n khJchF& Nh3ng hm Oi8u th4c chJnh @u1 )9c giMi h:n O-i WregexW& ph(ng cHn s6 %5ng ngo?c k.p& =$c Oi8u th4c logic )9c s6 %5ng t:o nn ki8m tra ph4c t:p %2a trn # ha1 nhiu thu'c tJnh v %o chb c th8 $p %5ng vMi shapeZiles& vi8u th4c logic )9c giMi h:n O-i %Nu m- ngo?c ng ngo?c AOi8u th4cF& ]n thu'c tJnh )9c giMi h:n O-i %Nu ngo?c vu(ng {thu'c tJnh|& Nh3ng tn n1 ph0n Oi/t gi3a ch3 hoa v th)*ng v phGi khMp vMi c$c chi tit trong shapeZile& SJ %5 jcDUj"">_N A{D_DYh\]>_N| XXXX \NT {h\N!Y\!j| e@ [UjN=^F& Nh3ng to$n t6 sau 01 )9c he tr9V or an% lt gt ge le e@ ne& =$c Oi8u th4c )9c x6 l7 chCm h;n& M't hm chueiV lengthAF %z thN1 n tJnh ' %i cIa chuei& SJ %5V jcDUj"">_NAlengthA{N\Mj|F F&

"o s$nh chuei v Oi8u th4c chJnh @u1 ho:t 'ng vMi c$c chi tit cIa class )9c Knh nghsa - m4c lMp Ala1erF& ]a c th8 kt h9p nhiu ki8u kh$c nhau On trong c$c lMp AclassF kh$c nhau cIa cRng la1er& !U_YD{string|V Nhm c$c class l:i vMi nhau& N chb )9c s6 %5ng khi # =h\""!U_YD - m4c la1er )9c thit lCp& Nu th(ng s cIa =h\""!U_YD )9c thit lCp th< chb nh3ng class c cRng m't nhm )9c xem x.t 8 xuNt h<nh Gnh& SJ %5V h\~jU =h\""!U_YD group# =h\"" N\Mj name# !U_YD group# EE jNT =h\"" N\Mj name` !U_YD group` EE jNT =h\"" N\Mj name} !U_YD group# EE& jNT EE& jNT pj~>M!{Zilename|V ]n H1 I cIa # Zile cIa h<nh Gnh chQ thJch cho # class& ^<nh Gnh n1 )9c x01 %2ng khi t:o chQ thJch Aha1 1u cHu # Oi8u t)9ng chQ thJch th(ng @ua mapscript ha1 4ng %5ng =!>F&

h\vjhV o$nh %Nu Ot Hu cIa i t)9ng laOel& M\c"=\hjTjN_M{%ouOle|V ]b l/ nhw nhNt m =h\"" )9c vu& ]b l/ )9c Oi8u %izn - %:ng mdu s cIa # ph0n s tb l/ th2c s2& SJ %5 #V`mXXX& M>N">j{interger|V pJch th)Mc nhw nhNt )9c tJnh Orng pixel 8 vu # Oi8u t)9ng& M?c Knh l X& N\Mj{string|V ]n )9c s6 %5ng cho chQ thJch cIa =h\""& _Y]h>Nj=_h_U{r|{g|{O|V Mu )9c s6 %5ng 8 vu vin cho a gi$c& p7 hi/u h>Nj kh(ng he tr9 _Y]h>Nj=_h_U& ">j{interger|V =hiu cao tJnh Orng pixel cIa k7 hi/uWmdu )9c s6 %5ng& =hb c t$c %5ng vMi nh3ng s1mOol c khG nqng co %+n& SMi nh3ng Oi8u t)9ng %:ng vector Av ellipseF kJch th)Mc m?c Knh %2a vo ' lMn gi$ trK cIa 1 - %:ng i8m Knh nghsa k7 hi/u& SMi pixmaps gi$ trK m?c Knh l chiu cao cIa h<nh Gnh& pJch th)Mc m?c Knh l # i vMi nh3ng k7 hi/u ]>[& "]\]Y"{oZZon|V ]hit lCp gi$ trK tr:ng th$i hi8n thK cIa lMp& !i$ trK m?c Knh l on& "]~hjV o$nh %Nu Ot Hu cIa i t)9ng st1le& # class c th8 ch4a nhiu st1le& "~Mv_h{integerstringZilename|V p7 hi/u %Rng ?t tn ha1 $nh s 8 s6 %5ng

cho tNt cG c$c ?c tJnh AZeagureF nu nh3ng OGn thu'c tJnh kh(ng )9c s6 %5ng& ]jMDh\]j{Zilename|V [ile khu(n mdu AtemplateF ho?c YUh 8 sinh kt @uG tru1 vNn n ng)*i s6 %5ng& ]jc]{string|V =huei text tsnh cIa ?c tJnh laOel trong class& N ghi gi$ trK cIa chuei lN1 t h\vjh>]jM& =huei c th8 )9c t:o O-i # Oi8u th4c )9c giMi h:n s6 %5ng k7 hi/u AF& Si/c n1 giQp ta c th8 kt h9p nhiu thu'c tJnh thnh # laOel %u1 nhNt& SJ %5 A{[>U"]N\Mj| {h\"]N\Mj|F&

&.&. B$" t%nh @>eatureA


oKnh nghsa c$c ?c tJnh AZeatureF On trong& = th8 s6 %5ng c$c ?c tJnh On trong n1 khi n kh(ng c khG nqng t:o # shapeZile& Nh3ng ?c tJnh On trong cLng c th8 )9c

x01 %2ng th(ng @ua url ha1 Zorm& M- Hu vMi t kha [j\]YUj v kt thQc vMi t kha jNT& D_>N]" =?p c$c gi$ trK x1 kt thQc vMi jNT& SJ %5V D_>N]" # # X X # X # # jNT Nh3ng lMp D_h~!_NWD_h~h>Nj phGi )9c Ot Hu v kt thQc t:i cRng # i8m& ]jc]{string|V =huei s6 %5ng 8 $nh nh+n ?c tJnh n1& ip]{string| # h<nh hc )9c th8 hi/n trong Knh %:ng _pen!>" iell pnoPn ]ext& o?c tJnh n1 chb )9c he tr9 nu Mapserver )9c x01 %2ng vMi s2 he tr9 cIa _!U ho?c !j_" SJ %5V ip] D_h~!_NAAXX XX }XX XX }XX `XX XX `XX XX XXFF ip] D_>N]A`XXX `XXF

&.-. ChDn @7a2e7A


oi t)9ng n1 )9c %Rng 8 Knh nghsa # nh+n )9c %Rng 8 chQ thJch # ?c tJnh Orng m't o:n vqn OGn& Nh+n cLng c th8 )9c s6 %5ng nh) nh3ng k7 hi/u th(ng @ua vi/c s6 %5ng c$c phong ]rue]1pe kh$c nhau& SJ %5V h\vjh =_h_U {M~=_h_U| _Y]h>Nj=_h_U ` ` ` [_N] sans ]~Dj truet1pe ">j D_">]>_N auto

D\U]>\h" [\h"j jNT =_h_U {re%|{green|{Olue|{attriOute| Mu %Rng 8 vu {attriOute| )9c giMi thi/u - OGn &X %Rng 8 x$c Knh tn cIa # chi tit AitemF trong OGn thu'c tJnh 8 s6 %5ng cho nh3ng gi$ trK mu& TNu ngo?c vu(ng {| l Ot Ou'c& SJ %5 trong Tv[ cIa shapeZile c # tr)*ng tn l M~=_h_U ch4a gi$ trK mu cIa mei recor%& oi t)9ng h\vjh khi c th8 ch4a nh) trn& _Y]h>Nj=_h_U {re%|{green|{Olue|{attriOute| Mu %Rng 8 vu # pixel xung @uanh text& {attriOute| t);ng t2 %Rng 8 x$c Knh # thu'c tJnh mu c sn& [_N] {name|V vJ %anh cIa Zont AKnh nghsa trong [_N]"j]F s6 %5ng 8 $nh nh+n& ">j{integer|{tin1smallme%iumlargegiant|{attriOute| pJch th)Mc cIa text& "6 %5ng integer 8 chn kJch th)Mc tJnh Orng pixel cIa nh+n %2a trn Zont ]rue]1pe& SMi nh+n c Zont Oitmap s6 %5ng lo:i tin1 small me%ium large giant& {attriOute| t);ng t2 nh) trn %Rng 8 x$c Knh thu'c tJnh kJch th)Mc c sn& ]~Dj{Oitmaptruet1pe|V c$c Knh ki8u cIa Zont )9c s6 %5ng& ]Bng @u$t Zont c %:ng Oitmap )9c vu nhanh h;n Zont ]rue]1pe& ]u1 nhin Zont ]rue]1pe c th8 co %+n v c nhiu ki8u ch3 kh$c nhau& =Hn g$n gi$ trK cIa Zont ]rue]1pe nu mun s6 %5ng& D_">]>_N{ulucurclcccrlllclrauto| SK trJ cIa laOel t);ng i n i8m nh+n& pJ t2 Hu tin l vK trJ cIa ~ gi$ trK tip theo l gi$ trK cIa c& \uto chb cho mapserver tJnh vK trJ cIa nh+n sao cho n kh(ng 5ng vMi c$c nh+n kh$c& SMi i8m v a gi$c mapserver chn # trong vK trJ - ngoi Alo:i tr ccF& SMi )*ng thng mapserver chb s6 %5ng lc v uc cho n khi n t<m thN1 vK trJ kh(ng 5ng vMi c$c nh+n kh$c + )9c vu& Nu nh) tNt cG c$c vK trJ u OK 5ng ' th< nh+n su kh(ng )9c vu&

M>N">j{integer|V pJch th)Mc Zont nhw nhNt )9c s6 %5ng khi text OK co gi+n kJch th)Mc& M?c Knh l m& M\c">j{integer|V pJch th)Mc Zont lMn nhNt )9c s6 %5ng khi text OK co gi+n kJch th)Mc& M?c Knh l `& \N!hj{%ouOleautoZolloPattriOute|V lu1 Knh gc 8 vu nh+n& v\=p!U_YNT=_h_U{r|{g|{O|V =hn mu %Rng 8 vu h<nh nn ch3 nhCt& M?c Knh kh(ng )9c vu& v\=p!U_YNT"^\T_i=_h_U{r|{g|{O|V Mu %Rng 8 vu h<nh ch3 nhCt e Ong& M?c Knh kh(ng vu& v\=p!U_YNT=_h_U">j{x|{1|V c$c Knh ' xa cIa Ong h<nh ch3 nhCt nn&

[_U=j{trueZalse|V vu'c nh+n cIa # lMp )9c OCt ONt chNp 5ng '& M?c Knh l Zalse&

&.E. ?p @?aFerA
o01 l i t)9ng )9c s6 %5ng nhiu nhNt trong mapZile& N m( tG nh3ng lMp Ala1erF )9c s6 %5ng 8 sinh ra OGn ,& =$c lMp )9c vu theo th4 t2 xuNt hi/n cIa n trong mapZile AlMp Hu tin nrm - %)Mi cRng lMp cui cRng nrm - trn cRngF& =h\""V TNu hi/u Ot Hu cIa i t)9ng =h\""& =h\""!U_YDV c$c Knh # nhm =h\"" )9c s6 %5ng 8 vu ra mn h<nh& ]h(ng s !U_YD cIa i t)9ng =h\"" phGi )9c s6 %5ng phi h9p vMi =h\""!U_YD& =_NNj=]>_N{string| =huei kt ni %ataOase 8 tru1 xuNt %3 li/u t xa& =huei kt ni n "Tj Oao g,m hostname tn cIa th2c th8 tn cIa %ataOase username v passPor% t$ch Oi/t O-i %Nu phn1& =huei kt ni n Dost!>" c; OGn l # chuei kt ni Dostgre"lh th(ng th)*ng c %:ng sau user noOo%1 passPor% %Oname %Oname host localhost port m}` =huei kt ni _racleV userWpass{%O|&

=_NNj=]>_N]~Dj{locals%eogrpostgisoraclespacial|V pi8u cIa kt ni m?c Knh l local& T\]\{Zilename|{s%e parameters|{postgis taOleWcolumn|{oracle taOlecolumn| [ilenameV )*ng %dn H1 I n # %3 li/u kh(ng gian 8 x6 l7& oi vMi shapeZile th< kh(ng cHn thit phHn m- r'ng& = th8 x$c Knh t);ng i n "^\DjD\]^ t i t)9ng M\D& Nu l lMp Dost!>" th(ng s phGi - %:ng columnname Zrom taOlename& ]rong columnnane l tn cIa c't ch4a c$c i t)9ng Ka l7 cn taOlename l tn cIa OGn ch4a %3 li/u Ka l7& SMi _racle s6 %5ng shape [U_M taOle ho?c shape [U_M A"jhj=] statementF ha1 c th8 s6 %5ng nh3ng c0u tru1 vNn ph4c t:p cIa _racle& =hQ 7 khi vNn hi/u suNt khi s6 %5ng c$c tru1 vNn con& ]ha1 vo s6 %5ng [>h]jU cIa mapserver khi c th8& [j\]YUjV o$nh %Nu Ot Hu i t)9ng [j\]YUj& [>h]jU{string|V ]h(ng s n1 cho ph.p lc %3 li/u thu'c tJnh c5 th8 cRng lQc vMi vi/c lc %3 li/u kh(ng gian nh)ng tr)Mc khi nh3ng Oi8u th4c trong class )9c tJnh to$n& oi vMi _!U v shapeZile chuei chb l nh3ng Oi8u th4c chJnh @u1 ;n giGn cIa mapserver& oi vMi nh3ng %ataOase kh(ng gian chuei l m't m/nh i^jUj "lh h9p l/ vMi %ataOase c5 th8& SJ %5V [>h]jU t1peroa% an% sie` [>h]jU>]jM{attriOute|V >tem s6 %5ng vMi nh3ng Oi8u th4c [>h]jU ;n giGn& =hb i vMi _!U v shapeZile& h\vjh>]jM{attriOute|V ]n cIa item trong OGn thu'c tJnh s6 %5ng cho vi/c chQ thJch class& Mj]\T\]\ ] kha n1 cho ph.p %3 li/u ONt ky )9c l)u nh) nh3ng c?p tn gi$ trK& o)9c s6 %5ng vMi _!= iM" 8 Knh nghsa nh3ng th4 nh) t2a cIa lMp& N cLng cho ph.p

tJnh u18n chu18n h;n trong vi/c t:o khu(n mdu AtemplateF nh) ONt c4 th4 g< )9c ?t 01 u c th8 )9c tru1 xuNt th(ng @ua c$c tag trong template& SJ %5V Mj]\T\]\ ]itle m1 la1er title \uthor me jNT N\Mj{string| ]n ngn cho la1er& !iMi h:n trong `X k7 t2& ]n n1 l mi lin kt gi3a mapZile v PeO PeO s6 %5ng 8 tham khGo n mapZile& To chQng Ou'c phGi ging nhau& ]n n1 phGi %u1 nhNt tr khi # la1er n1 tha1 th la1er kh$c - nh3ng tb l/ kh$c nhau& "6 %5ng chn l2a !U_YD 8 tCp h9p c$c la1er l:i vMi nhau& DU_fj=]>_NV pJ hi/u Ot Hu i t)9ng DU_fj=]>_N& "]\]Y"{onoZZ%eZault| !$n tr:ng th$i hi/n t:i cIa la1er& ]h)*ng )9c s6a Bi O-i chJnh mapserver& M?c Knh l la1er )9c hi/n& !i$ trK cIa "]\]Y" t ch ' =!> nh3ng la1er vMi "]\]Y" Tj[\Yh] kh(ng th8 OK nn s6 %5ng c; cNu th(ng th)*ng& Nn 8 "]\]Y" - tr:ng th$i Tj[\Yh] cHn t<m lei sau nn g$n gi$ trK _NW_[[ khi s6 %5ng th(ng th)*ng& SMi iM" nh3ng lMp trn mapZile vMi "]\]Y" Tj[\Yh] lu(n lu(n )9c g6i n client& ]~Dj{pointlinepol1goncircleannotationraster@uer1chart| c$c Knh %3 li/u )9c vu nh) th no& ph(ng cHn ging vMi ki8u cIa shapeZile& SJ %5V # shapeZile ki8u D_h~!_N c th8 )9c vu nh) # la1er %:ng D_>N] nh)ng # shapeZile %:ng D_>N] kh(ng th8 vu nh) # la1er %:ng D_h~!_N& YN>]"{Zeetincheskilometersmetersmiles%%pixelspercentages|V o;n vK cIa la1er&

&.G. h( th%"h @7egen5A


c$c Knh chQ thJch )9c t:o nh) th no& =$c thnh phHn cIa chQ thJch )9c t:o m't c$ch t2 'ng t c$c t nh3ng i t)9ng class cIa nh3ng lMp ring l& M- Hu Orng t kha hj!jNT v kt thQc Orng t kha jNT& pJch th)Mc cIa h<nh Gnh chQ thJch kh(ng th8 x$c Knh tr)Mc khi n )9c t:o %o nn cnn thCn khi nhCp kJch th)Mc c Knh chiu r'ng v chiu cao trong img tag cIa Zile template& >M!=_h_U{r|{g|{O|V Mu %Rng 8 vu chQ thJch& h\vjhV oi t)9ng n1 %Rng 8 vu nh+n cho chQ thJch& _Y]h>Nj=_h_U{r|{g|{O|V Mu %Rng 8 vin& D_">]>_N{ulucurlllclr|V SK trJ vu chQ thJch )9c nhQn vo mapZile& M?c Knh l gc phGi cIa OGn , AlrF& "]\]Y" {onoZZemOe%|V o8 x$c Knh c$ch h<nh Gnh chQ thJch )9c vu& ]U\N"D\UjN]{onoZZ|V c$c Knh tJnh trong sut cIa chQ thJch )9c vu& M?c Knh l oZZ&

&.H. Map
oi t)9ng chI cIa mapZile& N Knh nghsa nh3ng tham s cIa 4ng %5ng OGn ,& jc]jN]{minx|{min1|{maxx|{max1| pJch th)Mc kh(ng gian cIa OGn , )9c t:o& ]rong hHu ht c$c tr)*ng h9p ta cHn x$c Knh gi$ trK n1 m?c %R mapserver (i lQc cLng c th8 tJnh gi$ trK n1 nu ch)a )9c x$c Knh& [_N]"j]{Zilename|V [ilename )*ng %dn n Zile Zontset )9c s6 %5ng& = th8 l )*ng %dn t);ng i n mapZile ha1 )*ng %dn tu1/t i& >M\!j=_h_U{r|{g|{O|V Mu kh-i t:o OGn , Amu nnF& >M\!j]~Dj{giZpngapegPOmpgtiZZsPZuser%%eZine%|V oKnh %:ng h<nh Gnh xuNt ra& "^\DjD\]^{Zilename|V =hb n )*ng %dn ch4a nh3ng shapeZile&

"]\]Y" {onoZZ|V c$c Knh OGn , c )9c vu ha1 kh(ng& o(i lQc OGn , kh(ng )9c vu 8 chb hi/n OGn , tham khGo ha1 thanh tb l/&

-. !" th<nh ph=n temp7ate @htm7 temp7ateA


-.1. Gii thiu
]emplate )9c s6 %5ngV oKnh r giao %i/n cIa 4ng %5ng =!>& ]r<nh Oi kt @uG cIa tru1 vNn& N chb %dn c$ch tr<nh Oi kt @uG cG tru1 vNn v OGn , n ng)*i s6 %5ng& =$c template lu(n lu(n l c$c trang html m?c %R chQng c th8 l # YUh& Nh3ng template c %:ng YUh chb c th8 s6 %5ng vMi c$c lYjU~ ha1 >]jMlYjU~ ;n giGn& pt @uG m c @u$ nhiu tha1 th nh) Knh nghsa On %)Mi th< kh(ng phR h9p vMi chQng& !iao %i/n ;n giGn phng toWthu nhwWcanh gi3a s6 %5ng nh3ng Zile template ;n trong khi nh3ng tru1 vNn ph4c t:p i hwi cHn c nhiu template& ]emplate th)*ng )9c s6 %5ng kt h9p vMi aavascript 8 thm tJnh nqng 'ng vo trong giao %i/n c; OGn& =hQ thJchV ]Nt cG c$c tham s =!> c th8 )9c tham khGo - nh3ng tha1 th cIa template nh3ng tham s c5 th8 cIa mapserver cLng nh) nh3ng tham s %o ng)*i %Rng Knh nghsa& ]heo ngu1n tc c$c th(ng s )9c tru1n O-i mapserver %)Mi $nh x: #V#& o?c tJnh n1 l thit 1u cho vi/c hi/n th2c # 4ng %5ng mapserver& ]ham khGo On %)Mi chb li/t k %anh s$ch nh3ng chuei tha1 th template ?c Oi/t cHn thit 8 lN1 th(ng tin s6a Bi O-i mapserver vJ %5 nh) tb l/ mMi nh3ng kt @uG tru1 vNn &v&v&& Nh3ng chuei tha1 th th< ph0n Oi/t ch3 hoa v th)*ng& Nh3ng tha1 th thu'c tJnh chi tit phGi ging v cRng ki8u ch3 hoa th)*ng vMi c$c chi tit trong Zile %ataOase& \rcSieP v \rc>nZo th)*ng sinh ra nh3ng Zile %Oase vMi tn c$c chi tit lu(n - %:ng in hoa&

M't vi s2 tha1 th c th8 - %:ng escapse& Nh) # vJ %5 iu n1 cHn thit khi sinh nh3ng link On trong template& Si/c n1 c th8 tru1n kJch th)Mc AmapextentF hi/n t:i n # cu'c gi mapserver mMi& {mapext| )9c tha1 th O-i tCp c$c ta ' gc tr$i %)Mi v trn phGi )9c ph0n ranh giMi O-i nh3ng khoGng trng& Si/c n1 su lm hwng YUh& phi {mapextesc| )9c tha1 th O-i tCp m+ ha phR h9p&

-.2. BInh 5/ng


]emplate ;n giGn l nh3ng Zile html ha1 nh3ng chuei YUh m ch4a nh3ng k7 t2 ?c Oi/t c th8 )9c tha1 th O-i mapserv mei khi template )9c x6 l7& "2 tha1 th ;n giGn cho ph.p th(ng tin nh) nh3ng la1er )9c OCt ha1 kJch th)Mc kh(ng gian )9c tru1n t ng)*i s6 %5ng n ch);ng tr<nh mapserv ha1 ng)9c l:i& ]h)*ng nh3ng gi$ trK mMi )9c n1 vo trong nh3ng Oin cIa cIa Zorm m su )9c tru1n tip l:i& Tanh s$ch cIa nh3ng k7 t2 ?c Oi/t v nh3ng Oin cIa Zorm )9c giMi thi/u sau 01& Nh3ng template ^]Mh c th8 Oao g,m aavascript v vi/c gi t aava&

-.&. Tng qu!t


o01 l nh3ng Oin tBng @u$t nhNt v mapserver nh) s phin OGn cIa mapserver i% tn m$1 chI cIa PeOserver s port m PeOserver lng nghe& {version|V " phin OGn cIa mapserver& {i%|V >% phin %u1 nhNt& >% n1 c th8 )9c tru1n th(ng @ua th(ng @ua Zorm nh)ng th)*ng )9c sinh ra O-i phHn mm& ]rong tr)*ng h9p i% l s2 kt h9p cIa th*i gian YN>c Aha1 t);ng );ng N]F v i% @u$ tr<nh& ]r khi nhCn nhiu h;n # 1u cHu trong # gi01 h;n nh3ng i% @u$ tr<nh cIa h/ thng i% c th8 coi nh) l %u1 nhNt& {hostname|V ]n m$1 chI cIa PeOserver& {port|V Dort m PeO server lng nghe&

-.&.1. File tham kho


o01 l nh3ng Oin giQp tham khGo n Zile m mapserver sinh ra& ]h)*ng c$c Oin su )9c tha1 th Orng )*ng %dn t);ng i n c$c Zile h<nh m mapserver sinh ra& {img|

o)*ng %dn At);ng i n gcF cIa h<nh Gnh mMi chb tn h<nh Gnh nu nh) >M\!jYUh kh(ng )9c thit lCp trong mapZile& t trong giao %i/n template {img| )9c tha1 th O-i )*ng %dn n h<nh Gnh cIa OGn ,& ]rong # tru1 vNn sinh template n )9c tha1 th O-i )*ng %dn n h<nh Gnh OGn , tru1 vNn& {reZ|V o)*ng %dn t);ng i n gc cIa h<nh Gnh tham khGo mMi& {legen%|V o)*ng %dn At);ng i n gcF cIa h<nh Gnh chQ thJch mMi )9c sinh O-i mapserver& {scaleOar|V o)*ng %dn At);ng i n gcF cIa h<nh Gnh thanh tb l/ mMi& {@uer1Zile|V o)*ng %dn n Zile tru1 vNn& {map|V o)*ng %dn n Zile OGn ,&

-.&.2. Hnh nh hnh h c


o01 l c$c Oin trG v c$c gi$ trK trong h<nh hc nh) ta i8m gi3a cIa OGn , kJch th)Mc cIa OGn , chiu %i v chiu r'ng cIa OGn , tb l/ cIa h<nh Gnh hi/n t:i v&v&& {center|V c$c Knh i8m gi3a cIa h<nh Gnh tJnh theo pixel& ^3u %5ng cho vi/c thit lCp Oin imgx1 khi kJch th)Mc OGn , tha1 Bi& {centerx| {center1|V ]a ' x 1 cIa i8m gi3a cIa h<nh Gnh& {mapsie| {mapsieesc|V pJch th)Mc cIa h<nh Gnh hi/n t:i tJnh Orng nh3ng c't v nh3ng hng& = th8 s6 %5ng vMi phin OGn AescapeF& {mapPi%th| {mapheight|V =hiu r'ng v chiu cao cIa h<nh Gnh hi/n th*i& {scale%enom|V ]b l/ cIa h<nh Gnh hi/n t:i& !i$ trK chJnh x$c kh(ng thJch h9p vMi th(ng tin ng)*i s6 %5ng nh)ng thit 1u cho # vi 4ng %5ng& !i$ trK c th8 )9c lm trn s6 %ung aavascript ha1 x6 l7 - server&

-.&.&. !n "# hnh h c


]rG v kt @uG c$c gi$ trK cIa OGn , nh) l ta ' Ax 1F i8m click chu't trn OGn , ta ' Ax 1F nhw nhNt v lMn nhNt cIa OGn , mMi )9c t:o&

{mapx| {map1|V ]a ' c v ~ cIa i8m click chu't& {minx| {min1| {maxx| {max1|V ]a ' nhw nhNtW lMn nhNt c ~ cIa kJch th)Mc OGn , mMi&

-.&.-. $%p &la'er(


=$c Oin su )9c tha1 th %Rng 8 iu khi8n la1er nh) vi/c cho la1er hi/n ha1 nn v&v&& {la1ernamecheckselect|V o)9c s6 %5ng 8 t:o nh3ng lMp @ua phin t:o OGn ,& =huei )9c tha1 th vMi t kha checke% selecte% ha1 & ha1ername l tn cIa lMp nh) n xuNt hi/n trong mapZile& N kh(ng ho:t 'ng i vMi nh3ng la1er )9c OCt - ch ' %eZault&

You might also like