180
Khảo sát gói thư viện mã nguồn mở Geotools và ứng dụng hiện thực hệ thống thông tin địa lý trên nền Web MỞ ĐẦU 1.1 - Đặt vấn đề Trong những năm gần đây, hệ thống thông tin địa lý đã chứng tỏ được hiệu quả của nó trong việc hoạch định chính sách quản lý tài nguyên, trong việc qui hoạch nhà, đất…Tuy nhiên các phần mềm GIS thương mại thường có giá thành cao và không phải lúc nào ta cũng có sẵn một chuyên gia GIS để hướng dẫn, giải đáp, vậy vấn đề được đặt ra là liệu có một phần gói thư viện nào hay một phần mềm nào miễn phí và mã nguồn mở để ta có thể dễ dàng sử dụng và phát triển hay không? Khi đặt chân đến 1 đất nước xa lạ, việc đầu tiên phải chăng là mua cho mình một tấm bản đồ để xem thông tin đường đi, địa điểm; bạn muốn biết khu nhà mình có ở trong khu qui hoạch hay không bạn phải lên hỏi sở địa chính để biết thông tin vị trí của khu nhà của mình v.v… Điều đó có nghĩa là hầu hết mọi người đều cần và sử dụng các dữ liệu của hệ thống thông tin địa lý một cách trực tiếp hay gián tiếp. Đứng trước nhu cầu to lớn ấy việc phổ biến các dữ liệu đó trên nền WEB là cần thiết. Vậy làm cách nào để chúng ta có thể đưa các thông tin dữ liệu địa lý lên trên nền WEB, tương tác với người dùng? Vậy vấn để được đặt ra là phải nghiên cứu một phần mềm hay một gói thư viện mã nguồn mở nào cung cấp cho chúng ta những chức năng để hiển thị, tương tác, tìm kiếm thông tin địa lý trên nền WEB. CBHD: ThS. Nguyễn Đức Bình ThS. Văn Công Đức SVTH: Trần Lê Như Quỳnh Nguyễn Ngọc Xuân Hồng 1

Khảo Sát Gói Thư Viện Mã Nguồn Mở Geotools

  • Upload
    anh-vu

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

ưdf

Citation preview

1 -

Kho st gi th vin m ngun m Geotoolsv ng dng hin thc h thng thng tin a l trn nn WebKho st gi th vin m ngun m Geotoolsv ng dng hin thc h thng thng tin a l trn nn Web

M U

1.1 - t vn

Trong nhng nm gn y, h thng thng tin a l chng t c hiu qu ca n trong vic hoch nh chnh sch qun l ti nguyn, trong vic qui hoch nh, tTuy nhin cc phn mm GIS thng mi thng c gi thnh cao v khng phi lc no ta cng c sn mt chuyn gia GIS hng dn, gii p, vy vn c t ra l liu c mt phn gi th vin no hay mt phn mm no min ph v m ngun m ta c th d dng s dng v pht trin hay khng? Khi t chn n 1 t nc xa l, vic u tin phi chng l mua cho mnh mt tm bn xem thng tin ng i, a im; bn mun bit khu nh mnh c trong khu qui hoch hay khng bn phi ln hi s a chnh bit thng tin v tr ca khu nh ca mnh v.v iu c ngha l hu ht mi ngi u cn v s dng cc d liu ca h thng thng tin a l mt cch trc tip hay gin tip. ng trc nhu cu to ln y vic ph bin cc d liu trn nn WEB l cn thit. Vy lm cch no chng ta c th a cc thng tin d liu a l ln trn nn WEB, tng tc vi ngi dng?Vy vn c t ra l phi nghin cu mt phn mm hay mt gi th vin m ngun m no cung cp cho chng ta nhng chc nng hin th, tng tc, tm kim thng tin a l trn nn WEB. 1.2 - Gii php thc hin v mc tiu t c

a ra hng gii quyt hai vn trn chng ti quyt nh chn v thc hin ti Kho st gi th vin m ngun m GEOTOOLS v ng dng hin thc h thng thng tin a l trn nn Web da trn nn tng cc kin thc c hc trng. ti l s tng quan ha cc kin thc v h thng thng tin a l (GIS), v vic ph bin h thng thng tin a l trn nn Web, a ra mt ci nhn khi qut v cc cng ngh, phn mm v ang c ng dng th hin h thng thng tin a l trn nn Web, da trn nn tng cc kin thc c bn tin hnh nghin cu kho st cc chc nng c bn ca gi th vin m ngun m GEOTOOLS, kt hp vi chng trnh JBuilder v vn dng cc hiu bit trn vo vic hin thc ng dng a d liu bn huyn Lm H ln trn nn Web, cho php ngi dng c th tng tc thc hin cc chc nng hin th, tch hp v phn tch.

Mc tiu cn t c ca ti l nghin cu khi qut cc gi trong gi th vin m ngun m Geotools nhm phc v cho cc chc nng hin th, tng tc, truy vn vi bn trn Web theo hai hng l s dng shape file v s dng c s d liu lm d liu u.

1.3 - Ti liu tham kho

V phn Geotools: Gi geotools-javadoc-2.0.0 cha API ca Geotools

Mt s hng dn trong phn Tutorial, Snippet ca trang http://docs.codehaus.org/display/ GEOTOOLS V cc phn khc c lin quan trong ti:

H thng thng tin a l (TS ng Vn c )

Phn Help h tr trong cc phn mm GIS MapInfo, ArcView

ESRI Shapefile Technical Description July 1998

Chapter 9 : File and Security tm trn Web

PostGIS Manual - http://postgis.refractions.net Gio trnh H qun tr CSDL Phm Gia Tin

Bch khoa ton th m Wikipedia Spatial Data Management Arnulf Christl

Phn 2 TNG QUAN V H THNG THNG TIN A L GIS2.1 - nh ngha GISGIS vit tt ca cm t Geographic Information Systems (H thng thng tin a l).

C nhiu nh ngha v GIS:

GIS l cng c trn c s my tnh lp bn v phn tch nhng hin tng ang tn ti v cc s kin xy ra trn tri t. (Environmental System Research Institute ESRI M)

GIS l h thng phn cng, phn mm v cc th tc c thit k nhm thu thp, qun l, x l, phn tch, m hnh ha v hin th cc d liu quy chiu khng gian gii quyt cc vn qun l v lp k hoch. (National Center for Geography Information and Analysis NCGIA M).

GIS l mt tp hp cc nguyn l, phng php, dng c v d liu quy chiu khng gian c s dng nhp, lu tr, chuyn i, phn tch, lp m hnh, m phng v lp bn cc hin tng, s kin trn tri t, nhm sn sinh cc thng tin thit thc h tr cho vic ra quyt nh. (Thriault Canada)

Mt cch tng qut, GIS thc hin vic thu thp, qun l, thao tc v phn tch d liu a l cng vi vic trnh by kt qu di hnh thc bn v bo co.

Trong ngha hp, GIS l mt tp cng c phn cng phn mm c s dng qun l v thao tc d liu khng gian v cc thuc tnh lin quan tng ng.

GIS c t lu, nhng mi pht trin nhanh (tc x l) v mnh (cc phn tch phc tp) theo s pht trin ca ngnh IT.

GIS ang c ging dy ti cc cp hc trn th gii, c ng dng trong nhiu lnh vc.

2.2 - Thnh phn d liu GISBn l phng tin tt nht hin th cc thng tin a l. Cc d liu khng gian bao gm ba loi c im: im, ng v vng; v tr ca chng c xc nh bi cc ta . Theo truyn thng, bn l t giy phng, n c ta hai chiu. Bn c cc k hiu, bao gm cc ng v mu sc khc nhau biu th cc c im khc nhau. Bn cnh thng tin khng gian, cn c cc d liu m t hoc thuc tnh, chng gii thch cc c im ca d liu khng gian v mi lin h khng gian xc nh quan h ca cc c im bn . Tnh cht thi gian cng c bao gm bi v phn ln cc d liu l c lin quan n thi gian.

D liu trong h thng thng tin a l l nhng d liu lun thay i v phc h. Chng bao gm nhng m t s ca hnh nh bn , mi quan h logic gia cc hnh nh , nhng d liu th hin cc c tnh ca hnh nh v cc hin tng xy ra ti cc v tr a l xc nh. Ni dung ca c s d liu c xc nh bi cc ng dng khc nhau ca h thng thng tin a l trong mt hon cnh c th.

C s d liu ca h thng thng tin a l gm hai phn c bn l d liu khng gian (d liu bn ) v d liu thuc tnh (d liu phi khng gian). Mi mt loi d liu c c trng ring v chng khc nhau v yu cu lu tr, x l v hin th.

2.2.1 - D liu khng gian2.2.1.1 - Khi nim

L nhng m t s ca hnh nh bn . Chng bao gm to , quy lut v cc k hiu dng xc nh hnh nh c th ca bn trong mt khun dng hiu c ca my tnh. H thng thng tin a l dng cc d liu khng gian to ra mt bn hay hnh nh bn trn mn hnh hoc trn giy thng qua thit b ngoi v. C 6 loi thng tin bn dng th hin hnh nh bn v ghi ch ca n trong h thng thng tin a l nh sau:

im (Point)

ng (Line)

Vng (Polygon)

li (Grid cell)

K hiu (Sympol)

im nh (Pixel)

D liu khng gian c hai m hnh lu tr l Vector v Raster.

Hnh 1.1. M hnh lu tr d liu khng gian D liu dng Vector l cc im ta (X,Y) hoc l cc quy lut tnh ton to v ni chng thnh cc i tng trong mt h thng ta nht nh.Cc kiu i tng a l dng vect :

Kiu im: 1 to (x,y) trong 2D hoc 1 to (x,y,z) trong 3D, 0 chiu. Kiu ng: danh sch cc ta x1y1,x2y2, , xnyn hoc l mt hm ton hc, 1 chiu, tnh c chiu di. Kiu vng: tp cc ng khp kn, 2 chiu, tnh c chu vi v din tch Kiu b mt: chui ta xyz, hm ton hc, 3 chiu, tnh c din tch b mt, th tch. D liu Raster (nh i tng) l d liu c to thnh bi cc li c phn gii xc nh. Loi d liu ny ch dng cho mc ch din t v minh ho chi tit bng hnh nh thm cho cc i tng qun l ca h thng.Mt din tch a l c chia thnh cc hng-ct, to nn cc im nh (pixel). ln nh ca cc hng/ct (hay im nh) to nn phn gii ca d liu. V d : im nh c kch thc 10 x 10 m. V tr im nh c xc nh bi s hng/s ct. D liu dng raster c th l d liu th (nh v tinh, file nh scan ca bn , file chp ca my nh s, ) hoc l d liu khng gian ca mt s phn mm GIS.

Hnh 1.2. D liu RasterLp i tng (layer): Thnh phn d liu th ca h thng thng tin a l hay cn gi l c s d liu bn c qun l dng cc lp i tng. Mi mt lp cha cc hnh nh bn lin quan n mt chc nng, mt ng dng c th. Lp i tng l tp hp cc hnh nh thun nht dng phc v cho mt ng dng c th v v tr ca n so vi cc lp khc trong mt h thng c s d liu c xc nh thng qua mt h to chung. Vic phn tch cc lp thng tin c da trn c s ca mi lin quan logic v m t ha ca tp hp cc hnh nh bn phc v cho mc ch qun l c th2.2.1.2 - Cch thc t chc tin phn tch v tng hp, d liu khng gian thng c t chc thnh cc lp (layer / theme); cng thng c gi l cc lp d liu chuyn (thematic layer).Mi lp d liu thng biu din 1 tnh cht lin quan n v tr trn mt t. V d: lp d liu v ranh gii hnh chnh, v loi t, v hin trng s dng t,

Mi lp d liu c th c ch 1 hay nhiu kiu i tng a l (im, ng, vng). Trn 1 lp d liu, ti 1 v tr khng th c cng lc 2 gi tr ring bit.

V d: trn lp d liu v loi t, ti 1 v tr no khng th va l loi t A va l loi t B.

Cch t chc d liu thnh cc lp chuyn cho php th hin th gii thc phc tp mt cch n gin nhm gip hiu bit cc quan h trong thin nhin

Hnh 1.3. T chc cc lp bn

2.2.1.3 - Cch thc lu tr - Quan h khng gian topologyTopology l mi quan h logic gia v tr ca cc i tng; l 1 lnh vc ton hc. Cu trc d liu thuc topology c li v chng cung cp mt cch t ng ha x l vic s ha, x l li; gim dung lng lu tr d liu cho cc vng v cc ranh gii gia nhng vng nm k nhau c lu tr ch mt ln; v cho php chng ta cu trc d liu da trn cc nguyn l v tnh k cn (adjacency) v kt ni (connectivity) xc nh cc quan h khng gian. Phn ln cu trc d liu mang tnh topology l m hnh d liu vect kiu cung/nt (arc/node).

Cung: l 1 chui cc on thng ni gia cc nt, c nt u v nt cui.

Nt: l ni hai cung gp nhau.

im: l cc nt c lp.

Vng : l chui khp kn cc cung.

Quan h khng gian ca cc i tng trong cc phn mm GIS c xy dng theo khun dng thch hp. Thng c lp thnh 3 bng (table) c quan h, tng ng vi 3 kiu i tng: im, ng v vng.

Do phn mm to ra sau khi kim tra li s ha (v d: ArcInfo, AutoCAD Maps 3D, )

Hnh 1.4: Quan h d liu khng gian2.2.2 - D liu thuc tnh2.2.2.1 - Khi nimL nhng m t v c tnh, c im v cc hin tng xy ra ti v tr a l xc nh m chng kh hoc khng th biu th trn bn c. Cng nh cc h thng thng tin a l khc, h thng ny c 4 loi d liu thuc tnh:a) c tnh ca i tng: lin kt cht ch vi cc thng tin th, cc d liu ny c x l theo ngn ng hi p cu trc (SQL) v phn tch. Chng c lin kt vi cc hnh nh th thng qua cc ch s xc nh chung, thng thng gi l m a l v c lu tr trong c hai mng th v phi th. H thng thng tin a l cn c th x l cc thng tin thuc tnh ring r v to ra cc bn chuyn trn c s cc gi tr thuc tnh. Cc thng tin thuc tnh ny cng c th c hin th nh l cc ghi ch trn bn hoc l cc tham s iu khin cho vic la chn hin th cc thuc tnh nh l cc k hiu bn . b) D liu tham kho a l: M t cc s kin hoc hin tng xy ra ti mt v tr xc nh. Khng ging cc thng tin c tnh, chng khng m t v bn thn cc hnh nh bn , thay vo chng m t cc danh mc hoc cc hot ng nh cho php xy dng cc khu cng nghip mi, nghin cu y t, bo co him ha mi trng. . . lin quan n cc v tr a l xc nh. Cc thng tin tham kho a l c trng c lu tr v qun l trong cc file c lp v h thng khng th trc tip tng hp vi cc hnh nh bn trong c s d liu ca h thng. Tuy nhin cc bn ghi ny cha cc yu t xc nh v tr ca s kin hay hin tng. c) Ch s a l: l cc ch s v tn, a ch, khi, phng hng nh v,... lin quan n cc i tng a l, c lu tr trong H thng tin a l chn, lin kt v tra cu d liu trn c s v tr a l m chng c m t bng cc ch s a l xc nh. Mt ch s a l c th bao gm nhiu b xc nh cho cc thc th s dng t cc c quan khc nhau nh l lp danh sch cc m a l m chng xc nh mi quan h khng gian gia cc v tr hoc gia cc hnh nh hay thc th a l. d) Quan h khng gian gia cc i tng: rt quan trng cho cc chc nng x l ca h thng thng tin a l. Cc mi quan h ny c th n gin hay phc tp nh s lin kt, khong cch tng thch, mi quan h topo gia cc i tng. 2.2.2.2 - Cch thc t chcC nhiu m hnh d liu lin quan n cc H qun tr d liu (DBMS) : kiu bng, phn cp, mng, quan h v i tng.

2.2.2.2.1 - M hnh kiu bng (tabular model)M hnh ny lu tr d liu theo dng cc file tun t vi rng d liu thuc tnh c nh hay bng tnh. y l m hnh ca cc GIS u tin v nay li thi (khng kim tra c tnh ton vn d liu, ).

M hnh phn cp (hierarchial model)

D liu c t chc theo cu trc cy (tree). Mi v tr c nhiu thnh phn con nhng ch c mt thnh phn cp cao hn. Khng c p dng trong GIS.

Hnh 1.5 M hnh d liu phn cpM hnh mng (network model)

D liu c t chc theo cu trc mng. Mi v tr c th c nhiu thnh phn con v nhiu thnh phn cp cao hn. Tuy cu trc ny c kh nng th hin quan h ca d liu nhng cn hn ch, nn cng khng c khuyn khch s dng trong GIS.

Hnh 1.6: M hnh d liu mngM hnh quan h (relational model)

D liu c t chc thnh cc bng (table). Mi bng gm:

Cc ct (column) : cc ch tiu, tnh cht.

- v d : din tch, hm lng km, (cn gi l cc trng - field)

Cc hng (row) : cc thc th, i tng a l.

- v d : H Tr An, im ly mu 10,

Cc bng lin h vi nhau qua ct tham chiu (key column).

Kha chnh (primary key): gm 1 (hay nhiu) ct, gi tr ca kha chnh trong 1 bng l duy nht.

Kha ngoi (foreign key): l 1 (hay nhiu) ct trong 1 bng tham chiu n ct (hay cc ct) kha chnh trong 1 bng khc.

M hnh d liu quan h t ra thch hp i vi d liu a l v ang c ng dng rng ri trong vic qun tr d liu GIS.

Hnh 1.7: M hnh d liu quan h2.2.2.3 - Cch thc lu trD liu thuc tnh thng c lu tr trong cc bng quan h, trong mt trng cha ID ca cc i tng khng gian.

D liu thuc tnh c th c lu trong cc h qan tr c s d liu nh Postgesql, Oracle,.hoc c th c lu tr trong cc phn mm GIS nh MapInfo, Arcview2.2.2.4 - Mi quan h gia d liu bn v d liu thuc tnh

H thng thng tin a l s dng phng php chung lin kt hai loi d liu thng qua b xc nh, lu tr ng thi trong cc thnh phn th v phi th. Cc b xc nh c th n gin l mt s duy nht lin tc, ngu nhin hoc l cc ch bo a l hay d liu v tr lu tr. B xc nh cho mt thc th c th cha ta phn b ca n, s hiu mnh bn , m t khu vc hoc l mt con tr n v tr lu tr ca d liu lin quan.

2.3 - Chc nng

Sc mnh ca cc chc nng ca h thng GIS khc nhau l khc nhau. K thut xy dng cc chc nng cng rt khc nhau. Chc nng ca mt h thng thng tin a l c phn chia thnh nm loi sau y:

2.3.1 - Thu thp d liu

Chc nng thu thp d liu t cc quan st hin tng th gii thc v t cc ti liu, bn giy, i khi chng c sn di dng s. Kt qu ta c tp d liu th, ngha l d liu ny khng c php p dng trc tip cho chc nng truy nhp v phn tch ca h thng.2.3.2 - X l s b d liu

Chc nng x l s b d liu s bin d liu th thnh d liu c cu trc s dng trc tip cc chc nng tm kim v phn tch khng gian c xem nh din gii d liu, l t hp hay bin i c bit ca d liu c cu trc.

C nhng trng hp cc dng d liu i hi c chuyn dng v thao tc theo mt s cch c th tng thch vi mt h thng nht nh. V d, cc thng tin a l c gi tr biu din khc nhau ti cc t l khc nhau (h thng ng ph c chi tit ho trong file v giao thng, km chi tit hn trong file iu tra dn s v c m bu in trong mc vng). Trc khi cc thng tin ny c kt hp vi nhau, chng phi c chuyn v cng mt t l (mc chnh xc hoc mc chi tit). y c th ch l s chuyn dng tm thi cho mc ch hin th hoc c nh cho yu cu phn tch. Cng ngh GIS cung cp nhiu cng c cho cc thao tc trn d liu khng gian v cho loi b d liu khng cn thit.

2.3.3 - Lu tr v truy cp d liu

H thng GIS phi c phn mm cng c t chc v lu tr cc loi d liu khc nhau, t d liu th n d liu din gii. Phn mm cng c ny phi c cc thao tc lu tr, truy nhp; ng thi c kh nng hin th, tng tc ha vi tt c cc loi d liu

i vi nhng d n GIS nh, c th lu cc thng tin a l di dng cc file n gin. Tuy nhin, khi kch c d liu tr nn ln hn v s lng ngi dng cng nhiu ln, th cch tt nht l s dng h qun tr c s d liu (DBMS) gip cho vic lu gi, t chc v qun l thng tin. Mt DBMS ch n gin l mt phn mn qun l c s d liu.

C nhiu cu trc DBMS khc nhau, nhng trong GIS cu trc quan h t ra hu hiu nht. Trong cu trc quan h, d liu c lu tr dng cc bng. Cc trng thuc tnh chung trong cc bng khc nhau c dng lin kt cc bng ny vi nhau. Do linh hot nn cu trc n gin ny c s dng v trin khai kh rng ri trong cc ng dng c trong v ngoi GIS.

2.3.4 - Tm kim v phn tch khng gian

Mt khi c mt h GIS lu gi cc thng tin a l, c th bt u hi cc cu hi n gin nh:

Ai l ch mnh t gc ph?

Hai v tr cch nhau bao xa?

Vng t dnh cho hot ng cng nghip u?

V cc cu hi phn tch nh:

Tt c cc v tr thch hp cho xy dng cc to nh mi nm u?

Kiu t u th cho rng si l g?

Nu xy dng mt ng quc l mi y, giao thng s chu nh hng nh th no?

GIS cung cp c kh nng hi p n gin "ch v nhn" v cc cng c phn tch tinh vi cung cp kp thi thng tin cho nhng ngi qun l v phn tch. Cc h GIS hin i c nhiu cng c phn tch hiu qu, trong c hai cng c quan trng c bit:

a) Phn tch lin k

GIS c kh nng phn tch nhng i tng bao xung quanh mt i tng c th no bng cch dng mt vng m. Vng m l mt dng hnh hc da trn i tng tn ti khc (im, ng hoc vng) m n c th c GIS to ra. i tng m din t tng din tch trong mt khong cch no ca mt feature c cho trc.

Hnh 1.8 Vng m kiu im

Hnh 1.9: Vng m kiu ng

Hnh 1.10: Vng m kiu a gicTa c th dng GIS to ra nhng vng m v sau xc nh tt c cc feature nm trong mt khong cch c th. Chng hn nh ta chn tt c cc a ch trong vng mt vng m 500 m ca mt con ng ng c v so snh chng vi d liu v tc ng ca bnh hen suyn. Bng cch so snh hai tp hp d liu, ta c th thng k c nhng ngi bnh suyn ang sng trong vng m nhiu hn l dn s chung. N cho php ta phn tch c hay khng nhn t ca s sng gn nhng con ng ng c vi nguyn nhn gy ra bnh hen suyn.

b) Phn tch chng xp

Chng xp l qu trnh tch hp cc lp thng tin khc nhau. Cc thao tc phn tch i hi mt hoc nhiu lp d liu phi c lin kt vt l. S chng xp ny, hay lin kt khng gian, c th l s kt hp d liu v t, dc, thm thc vt hoc s hu t vi nh gi thu.

Hnh 1.11: Phn tch chng xp2.3.5 - Hin th ha v tng tc

Vi nhiu thao tc trn d liu a l, kt qu cui cng c hin th tt nht di dng bn hoc biu . Bn kh hiu qu trong lu gi v trao i thng tin a l. GIS cung cp nhiu cng c mi v th v m rng tnh ngh thut v khoa hc ca ngnh bn . Bn hin th c th c kt hp vi cc bn bo co, hnh nh ba chiu, nh chp v nhng d liu khc (a phng tin).Quan h gia cc nhm chc nng v cch biu hin thng tin khc nhau ca GIS c m t trong hnh v sau:

Hnh 1.12: Quan h gia cc nhm chc nng GIS

Phn 3 PH BIN H THNG THNG TIN A LTRN NN WEB - WEBGIS3.1 - nh ngha

GIS c nhiu nh ngha nn WEBGIS cng c nhiu nh ngha. Ni chung, cc nh ngha ca WEBGIS da trn nhng nh ngha a dng ca GIS v c thm cc thnh phn ca WEB (web component). y l mt s nh ngha v WEBGIS:

WEBGIS l mt h thng phc tp cung cp truy cp trn mng vi nhng chc nng nh l bt gi hnh nh(capturing), lu tr, hp nht d liu (integrating), iu khin bng tay(manipulating), phn tch v hin th d liu khng gian.(theo Harder 1998) .

WEBGIS l h thng thng tin a l (Geographic Information System -GIS) c phn b thng qua h thng mng my tnh phc v cho vic thp nht, ph bin (disseminate), giao tip vi cc thng tin a l c hin th trn World Wide Web(Edward,2000,URL).3.2 - M hnh hot ng

Hnh 2.1: M hnh hot ng WebGIS

Hnh 2.2: M hnh Web GISNgun: http://gis.ascc.net/STIS/eng/main2-3.html3.3 - Kin trc WebGIS

Kin trc ca 1 h thng WEBGIS tng t vi kin trc Client-Server (Client Side _ Server Side) ca WEB.

Client in hnh l WEB Browser v Server-side bao gm WEB Server c cung cp chng trnh phn mm WEBGIS. Client gi yu cu v bn thng qua mt s tham kho t cc cng c(tools) thng qua WEB n remote server. Server s gi nhng phong thc GIS thng qua vic gi n phn mm WEBGIS nm trn Map Server. Phn mm s tr v kt qu ,Mapserver se gui kt qu d v WEB Server.WEB Server s gi kt qu li cho WEB Browser hin th nhng thng tin c yu cu t pha client bng Applet hay trang HTML. (Peng, 1997; Plewe, 1997, p.5).

Hnh 2.3 Cu trc h thng Webmapping3.3.1 - Kin trc Thin ClientTp trung ch yu pha server-side, hu ht mi d liu v th tc phn tch u c tin hnh trn server. D liu c chuyn n web-client thng qua nh dng HTML chun c cha cc file nh(GIF,PNJ,JPG). Nhc im ca gii php server-side ch yu l gii hn giao din ngi dng.Trong WEBGIS, c nhiu ng dng m ngi dng cn phi tng tc vi d liu a l trc khi thc thi chnh trn n.Do , Thin Client khng hiu qu lm vic khi s dng chun giao din WEB(Gerardo,2000,URL).Tuy nhin gii php ny l con ng n gin xy dng ng dng web map chy bt k trnh duyt chun no.

Hnh 2.4 Kin trc Thin Client3.3.2 - Kin trc Thick Client

Thick client cung cp hin th kt qu t geo-processing (tin trnh trao i gia WEB Server v Map Server(cha phn mm WEBGIS)) ti Client thng qua cc cng ngh trnh by n nh ActiveX controls, Java-applets, plug-ins (GIS plug-ins l 1 phn mm ng dng nh c ci t ti client-side m rng kh nng hat ng ca WEB Browser trong vic iu khin cc dng d liu GIS m HTML khng th nhn ra) .Thick-client khng ging vi thin-client ch l thin-client rendered maps c chuyn di dng images files, geo-data cn thick-client li c chuyn di dng nhiu cu trc d liu vector c lin kt(more compact vector data structure) (Gerardo, 2000, URL). u im ca WebGIS client-side l c kh nng m rng giao din ngi dng v dch v map.Trong thc t, khuyt im ca client-side solution lin quna n vic phn b phn mm v d liu, khng c phn mm no Java hoc ActiveX chy trn tt c nn my tnh tn ti trn Internet.

Hnh 2.5 Kin trc Thick Client3.4 - Chc nng3.4.1 - Chc nng hin th Hin th ton b tt c cc lp bn .

Hin th cc lp bn theo ty chn.

Thay i t l hin th bn (phng to, thu nh).

Di chuyn khu vc hin th.

Hin th thng tin v i tng c th.

In bn .

3.4.2 - Chc nng phn tch v thit k Thc hin vic tm kim cc d liu ph hp vi yu cu (qua cc query).

Chnh sa i tng sn c thng tin v mu sc thng qua 1 chun bn .

To bn chuyn .

3.5 - Mt s Web-GIS minh ha

Hnh 2.6: trang Web http://www.geoweb.pt

Hnh 2.7: trang Web http://basao.com.vn

Hnh 2.8: trang Web http:/www.nratlas.nsw.gow.au/wmc/savedapps/nratlasBn cnh cc trang c s web c m hnh WEBGIS tht s ta c gp phi nhng trang gi to lm theo kiu cng c chc nng phng to, thu nh, cho in, nhng chng khng l WEBGIS m ch l hnh nh v c s dng cc an script phng to thu nh hoc n thun ch l nhng hnh nh c a ln da trn yu cu ca ngi dng h thng tm di c s d liu ly ra nh tng ng. Chng hn nh trang web thnh ph H Ch Minh (http://www.hochiminhcity.gov.vn/home/left/ban_do/bandotp_quanhuyen)

Hnh 2.9 Trang Web http://www.hochiminhcity.gov.vn/home/left/ban_do/bandotp_quanhuyen3.6 - Quy trnh xy dng mt d n ng dng GIS

3.6.1 - Xc nh mc tiu d n

Trc khi bt u vo xy dng d n, ta cn xc nh r cc mc tiu ca d n. Cc vn quan trng cn phi thc hin kho st v nh gi cho d n c th tm tt nh sau:

Cn phi gii quyt vn g? Gii quyt nh th no? C nhng phng php no gii quyt?

Sn phm cui cng ca d n l g? Cc bo co hay bn th hin nhng g? To ra cc sn phm ny nh th no?

Ai l ngi s dng nhng sn phm cui cng cc nh k thut, nh xy dng, nh quy hoch, ngi ra quyt nh, s dng chung?

C hoc s c nhng ngi khc s dng c s d liu ny? Nu c, cn nhng yu cu g?

Nhng vn ny s tc ng n phm vi ng dng ca d n v vic trin khai n. Sau khi xc nh r cc mc tiu cho d n ng dng GIS c th, chng ta s tin ti vic trin khai cng ngh GIS.

3.6.2 - Xy dng c s d liu

y l bc quan trng v tiu ph nhiu thi gian nht ca d n. Mc hon thin v chnh xc ca cc d liu quyt nh cht lng vic phn tch v sn phm cui cng ca d n. Di y l cc bc xy dng mt c s d liu s:

Thit k m hnh cu trc c s d liu xc nh phm vi v din tch ca vng nghin cu, h ta no s c s dng, c nhng lp d liu no cn thit, mi lp gm nhng i tng no, cc thuc tnh no l cn thit cho mi kiu i tng, cc thuc tnh ny c t chc v m ha th no. Thc hin to lp c s d liu, lin quan n cc vn sau:

Xy dng c s d liu bn t d liu khng gian, s ha v chuyn i d liu bn t cc h thng c.

Bin tp cho c s d liu t cc thong tin s ha chng ta bin chng thnh cc thng tin hu ch cho ngi s dng, xc nh cc li trong c s d liu, sa cha chng.

Xy dng c s d liu cho d liu thuc tnh vo d liu thuc tnh, lin kt d liu vi i tng khng gian.

Qun l c s d liu t d liu khng gian vo h ta th gii thc, kt ni v chng xp cc lp thng tin, duy tr c s d liu.

3.6.3 - Phn tch d liu

T cc thng tin sn c trong c s d liu, cng ngh GIS c kh nng to ra c cc thng tin mi v thc hin phn tch d liu theo cc nhim v m h thng tin khc cn phi tiu ph rt nhiu thi gian hoc thm ch khng th lm c.

3.6.4 - Th hin kt qu phn tch

Trong GIS ngi s dng c th to ra cc bn v cc bo co ty theo ca mnh. Cc sn phm cui cng bao gi cng lin quan n mc ch ca d n cng nh ngi s dng cui cng l ai, c hai vn ny bn u phi xc nh ngay t khi bt u xy dng d n. Kh nng tng hp v th hin kt qu phn tch ca bn, bao gm phn tch a l v bng thuc tnh.

3.7 - Hin trng cng ngh Web-GIS3.7.1 - Web tnh (Static Web Mapping)3.7.1.1 - M hnh hot ng

Hnh 2.10 M hnh hot ng ca Web tnh3.7.1.2 - Web Map Service mt i din cho k thut Web tnh

Khi nim

Web Map Service(WMS) l mt k thut phn b thng tin a l di dng bn trn mng. Nhng bn dng nh nh PNG, GIF, JPEG hoc l vector-based graphical elements in Scalable Vector Graphics (SVG), kt qu khng l nhng d liu thc s v ch xem c di dng nh v khng thao tc c trn cc i tng a l a l c th.

Phng cch hot ng

Cc phng thc ca WMS c th gi s dng t web browser khi ngi dng gi request (a ch URLs). Kt qu tr v ph thuc vo cc phng thc c yu cu. Ni c th l, khi c nhng yu cu(request) v bn nhng thng tin kt qu sau khi thc hin cc phng thc s c trnh din li trn mn hnh di dng nh bn . Khi c 2 hay nhiu bn c xut vi cng 1 tham s geographic v cng kch c xut , kt qu s l mt bn tng hp vi cc hnh nh bn dng (GIF, PNG..) c nn background trong sut.

a) Cc phng thc ca WMS: C 3 phng thc: GetCapabilities: Cho php server qung b cc chc nng c th ca n:

Hin thi cc lp

Cung cp xut ra nhiu h qui chiu

Cung cp xut ra nhiu nh dng

Co dn cc mu tin (scale hints)

Qui m ca d liu (extent of data)

Kt qu nm trong nh dng XML

Kt qu ca phng thc l cc ni dung thng tin ca server v nhng gi tr thng s request .

GetMap: Cho php tm kim v hin th bn t web server. Ngi dng cung cp bouding box, kch c hnh nh, nh dngServer tr v cc bn dng nh c nh dng GIF,PNG,TIFF.

Kt qu tr v l 1 bn da vo yu cu GetMap

GetFeatureInfo: Cho php truy vn nhng simple feature attribute. Ngi dng cung cp cp ta x,y v lp h a thch. Server s tr v thng tin thuc tnh trong nh dng HTML,GML hoc arbitrary ASCII

Kt qu tr v nhng thng tin ca cc feature trong nh bn

b) Khuyt im:

WMS ch cung cp ch l hnh nh ch khng l d liu thc s, b gii hn trong vic qun l kiu d liu khc nhau, c bit gii hn trong vic gn nhn(labeling), cung cp t chc nng.3.7.2 - Web ng (Dynamic Web Mapping)

3.7.2.1 - M hnh hot ng

Hnh 2.11 M hnh hot ng ca Web ng3.7.2.2 - Web Feature Service mt i din cho k thut Web ng

Khi nimKhi s dng WFS, cc feature c m hnh nh nhng i tng a l, ngha l chng c th c lu tr trong mt d liu i tng c bn tng t nh d liu vect. Cc feature c th l nhiu th m c th c t trong khng gian v thi gian, gm cc ta nh, cc thnh ph, cy ci, cc khu rng, cc h sinh thi, phn b giao thng, cc ng ng dn du,.

WFS l mt cch phn phi cc c trng a l thng qua mt dch v web n vi ng dng pha ngi dng (client) hoc mt trnh duyt (browser). Ngi dng (client) s c th yu cu d liu c chn lc phc v cho phm vi nhu cu ca mnh. WFS l 1 s chun ha ca vic phn phi d liu vect n ng o ngi dng. Ngi dng c th nhp vo d liu dng vect khi yu cu thng tin v WFS s p ng yu cu .

WFS s dng c thng qua Internet hoc trong 1 mng ni b (Intranet). Chun vect hot ng vi HTTP (Hypertext Transform Protocol) v h tr thut ton insert, update, delete, truy vn (query) v hot ng tm kim cho cc i tng a l. Cc feature thng c chuyn i trong nh dng GML (Geographic Markup Language) n ng dng pha client.

a) Nhng yu t cn thit cho 1 Web Feature Service

Cc interface (giao din) phi c nh ngha trong XML

GML phi c dng biu th cc (feature) c trng trong interface

Mt WFS c bn nht phi trnh by c nhng feature bng cch dng dng GML

Ngn ng thuc tnh v b lc s c nh ngha trong XML v c trch xut t CQL nh nh ngha trong OpenGIS Catalogue Interface Implementation Specification Kho d liu lu tr nhng feature a l cn c che giu i vi ng dng pha client v h ch nhn thy d liu thng qua WFS interface

Cng dng ca tp con cc biu thc XPath l tham kho cc thuc tnh.

Hnh 2.12: M hnh tng tc gia WFS v client

b) Qu trnh tng tc:

Mt ng dng pha client yu cu 1 ti liu c thng tin t WFS. Chng hn 1 ti liu cha 1 m t cho tt c cc thut ton m WFS h tr v 1 danh sch ca tt c cc kiu feature m n c th phc v.

Sau , client (ty chn) gi yu cu n 1 dch v web feature nh ngha 1 hay nhiu feature hoc kiu phn t m WFS c th phc v.

Da trn nh ngha ca cc kiu feature, ng dng pha client khi to 1 yu cu theo l thuyt nh trong ti liu ny.

Yu cu c gi ln web server.

WFS c gi c v p ng yu cu.

Khi WFS hon tt tin trnh ny, WFS s to gi tr bo co kt qu cho client. Nu c s c xy ra, bn bo co ny s ch ra li.

c) Cc thut tonNhng thut ton sau c nh ngha h tr cho qu trnh giao dch v truy vn:

GetCapabilities: cho bit thng tin v nhng d liu no v nhng thut ton m WFS cung cp; kt qu tr v c t trong nh dng XML m t y kh nng, nhng kiu feature m WFS c th h tr v thut ton no c p dng trn mi kiu feature. DescribeFeatureType: m t cu trc ca nhng kiu feature m WFS c th phc v; thng dng kt ni d liu thuc tnh vo cc feature v lm cho chng c th truy vn c; DescribeFeatureType response th hin di dng XML GetFeature: web feature service phi c kh nng p ng 1 yu cu khi phc nhng th hin feature. Thm vo , client phi c kh nng ch r nhng thuc tnh feature no np vo v cn gii hn rng buc truy vn khng gian v truy vn thuc tnh. GetFeature response s bao gm nhng d liu feature tht s c t trong GML (mc nh); nu WFS h tr ESRI: sShape, GMLZIP hoc d liu XML_SVG th GetFeature response c th th hin bng nh dng theo mong mun. GetGmlObject : web feature service phi c kh nng p ng yu cu khi phc cc th hin phn t bng cc ng ngang XLink cp n cc nh danh XML ca chng. Thm vo , client cn ch r c hay khng XLink nhng vo phn t d liu tr v cng cn c khi phc.

Transaction(optional): web feature service phi c kh nng p ng cc yu cu chuyn giao. Mt yu cu giao dch bao gm cc thut ton thay i cc feature l create, update v delete trn cc c trng a l.

LockFeature(optional): web feature service phi c kh nng x l 1 yu cu kha trn mt hay nhiu th hin ca 1 kiu feature cho 1 khong thi gian chuyn giao, trong c h tr chuyn giao ng thi.

Hnh 2.13 Cc thut ton ca WFSd) Cc lp ca WFS:Da trn nhng m t thut ton trn, 3 lp (class) ca web feature services c nh ngha nh sau:

Basic WFS: hin thc cc thut ton GetCapabilities, DescribeFeatureType, GetFeature v c xem nh 1 web feature service c thuc tnh READ-ONLY. XLink WFS: h tr tt c cc thut ton ca 1 web feature service c bn v hin thc thut ton GetGmlObject cho nhng XLink cc b v/hoc iu khin t xa, v a ra ty chn cho thut ton GetGmlObject thi hnh xuyn sut thut ton GetFeature. Transaction WFS: h tr tt c cc thut ton ca 1 web feature service c bn v hin thc thut ton transaction. Mt transaction WFS c th hin thc hoc khng thut ton GetGmlObject v/ hoc LockFeature

Hnh 2.14: M hnh tng tc gia client v transaction WFS

3.8 - Khi qut mt s ngn ng3.8.1 - GML3.8.1.1 - Khi nim

GML hay Geography Markup Language l chun m ha c bn XML dng cho thng tin a l c OpenGIS Consortium(OGC) pht trin. Mc tiu ca n cho php Internet Browser c kh nng xem bn trn web m khng cn phi gn thm cc thnh phn b tr no khc v dng m hnh ha (modeling), truyn ti (transport), lu tr cc thng tin a l.

GML cung cp nhiu loi i tng cho vic m t a l bao gm cc geographic feature(*) , h thng nh v(coordinate reference system), i tng hnh hc (geometry), topology, thi gian(time), n v o lng v tng qut ha d liu.

(*) geographic feature l s tru tng ha hin tng ca th gii thc kt hp vi v tr ca n trn Tri t hay n gin geographic feature l nhng c t a l ca mt hin tng th gii thc.

3.8.1.2 - Thnh phn

Geometries and Coordinate reference System(da vo EPSG): Coordinate reference System gm tp hp cc datum (hnh dng v kch c ca Tri t). Geometries cho bit coordinate reference system m mnh o lng tnh ton.

A temporal reference system(da vo ISO 8601) cung cp cc chun v n v o lng thi gian

A Units of Measure (UOM) dictionary cung cp cc nh ngha v cc con s o lng chng hn nh l chiu di, nhit , p sut v s chuyn i gia cc n v o lng.

Hnh 2.15: Thnh phn GMLKhi c mt yu cu c gi n yu cu truy xut d liu Geographic Data Server s gi li nhng d liu kt qu ca yu cu truy xut di dng GML.

3.8.1.3 - Truyn ti d liu khng gian

Hnh 2.16: M hnh truyn ti d liu khng gian ca GMLCc thng tin v tr GML c th truyn ti:

Cc im mng. Cc tuyn ng. Cc thng tin c quan st (hnh nh, cc thng tin truyn thng a phng tin) Thng tin nh v / a ch th tn(Qualitative location/ Postal Address)

3.8.1.4 - GML Map Making Process

Hnh 2.17: GML Map Making Process3.8.1.5 - Tng quan v GML Schemas

GML version 2 _XML for Simple Features: Cc thuc tnh hnh hc ca Simple Features b gii hn ch ta ca 'simple' geometries c nh ngha trong khng gian 2 chiu, s pht ha mt ng cong ph thuc vo php ni suy tuyn tnh.

GML cung cp :

Features, Feature Collections

Geometries

Feature properties and other associations; Remote associations

Complex associations

GML version 3 _ more than Simple Features plus ISO conformace

GML phin bn 3.0 ci tin nhng khuyt im ca phin bn 2.0. N th hin cc hin tng khng gian a l bng phng php tuyn tnh hai chiu n v phc, phi tuyn tnh, hnh hc khng gian 3 chiu, topo 2 chiu, nhng c tnh thi gian, c tnh ng, phng php bao ph v phng php quan st thng tin. Phin bn ny h tr cc c tnh feature v cc i tng c gi tr phc chnh xc hn. Ngoi ra phin bn cn cung cp cc chun v n v o lng thi gian v khng gian. Phin bn ny ph hp vi nhng qui nh ca ISO 19100.

GML 3.0 th hin rt nhiu thc th khc nhau chng hn nh cc feature, geometry, topologythng qua cu trc phn tng ca nhng i tng trong GML c minh ho qua s UML di y.

Hnh 2.18: Cu trc GML3.8.2 - SVG - Scalable Vector Graphics

3.8.2.1 - Khi nimSVG c vit tt t Scalable Vector Graphics l chun m rng c pht trin bi t chc W3C dng cho vic trnh din cc hnh nh ha vect hai chiu bng ngn ng XML c hai trng thi tnh v ng

3.8.2.2 - Lch s pht trin SVG c nhm pht trin W3C bt u xy dng vo nm 1998 do Chris Lilley lm ch tr

4/9/2001 : SVG 1.0.

14/1/2003 : SVG 1.1, SVG Tiny v SVG Basic

Hin nay nhm pht trin SVG ang tip tc thc hin SVG Tiny 1.2 v SVG Full 1.2

3.8.2.3 - Nhng c trng chnh ca SVG

SVG c thit k thnh mt ngn ng c mc ch tng qut l trnh din nhng hnh nh ha hai chiu. Theo thng thng, SVG cung cp cc cch thc xy dng nhng hnh dng c bn nh ng, a gic, ng trn v ng cong. Bn cnh , SVG cng h tr dng vn bn m ta c th gn km vo mt ng dn, chng hn nh nhng hnh nh dng raster (bng cch tham kho hoc bao gm c tp tin bn ngoi). Do SVG l mt ngn ng da trn XML nn chng ta c th c cc tp tin SVG nh c cc tp tin HTML.

Hnh 2.19: Kt qu hin th ca mt on m SVGNgun ca mt tp tin SVG n gin c trnh by trong hnh trn, cng vi hnh nh tng ng. Cc tp tin SVG cha cc th (tag) v vi cc thuc tnh ch r v tr v kiu (style) ca cc element.

Thuc tnh xmlns trong th nh ngha XML namespace mc nh ca vn bn. Namespace http://www.w3.org/2000/svg tng ng vi ngn ng SVG 1.0.

Thm vo , SVG cng c nhiu c trng cp cao bao gm kh nng p dng cc b lc, nh hiu ng m v chp sng. Mt c trng quan trng khc l hot nh (animation) gip di chuyn cc i tng trong nh, hoc lm cho chng xut hin dn vo hay i ra (fade in/ out).

Tp hp ton din cc c trng gip SVG d dng to ra nhng hnh nh cp cao. T khi c a ra lm mc tiu hng ti ca web, SVG cng cung cp nhng c trng siu lin kt (hyperlink) . Cc lin kt c biu din bng ngn ng W3CXLink. Mc d nhng ngi quan st SVG ch i hi vic h tr nhng dng lin kt gin tip n gin thng thy trn cc trang web nhng XLink cng cung cp nhng kh nng lin kt v cng linh ng.

Vic SVG c da trn XML lm cho SVG c th dng XML DOM sa i linh hot cc hnh nh SVG t 1 tp lnh (script language). y l c trng rt mnh m.

V d, xem mt hnh nh SVG c nhng trong trang web nh hnh bn di. Mt ngi pht trin c th iu khin c DOM ca trang web v DOM ca hnh nh SVG t trong tp tin script tng t. Khi dng k thut ny, giao din trang web HTML c th c dng iu khin nhng hnh nh SVG trn trang web. y l mt bc pht trin ln i vi nh dng d liu so vi Shockwave v Flash, ni m kh nng giao tip gia trnh duyt (browser) gn vo v nhng phn khc ca trang web b hn ch nhiu.

Hnh 2.20: SVG kt hp vi Web3.8.2.4 - Nhng h tr SVG hin ti

Thnh cng ca SVG da nhiu trn mt s ng dng h tr chun. Nhiu gi ha (drawing package) c th xut ra (export) cc hnh nh n cc tp tin SVG, v c nhng gi c th nhp (import) v chnh sa d liu SVG.

iu ng tic nht l hin nay khng c cc trnh duyt ln no h tr SVG. V vy, ngi dng phi s dng mt trnh duyt c gn thm phn h tr xem SVG trn web.

Phn h tr ph bin nht l Adobe SVG Viewer, tng thch vi h iu hnh Microsoft Windows v Mac. Dng c ny c th hin th nhng hnh nh c cht lng cao v ng thi h tr hiu ng hot nh v s tng tc DOM thng qua script. HIn nay Adobe SVG Viewer x l hu ht chun SVG, mc d mt s phn trong vn cha c hin thc.

Hy vng rng, s h tr SVG s c thm vo cc trnh duyt trong tng lai. C 1 d n hot ng m mc tiu hng n l thm h tr SVG vo Mozilla, m ngun m ang c pht trin nhng phin bn mi ca trnh duyt Netscape. Microsoft tham gia vo cng vic ca nhm pht trin SVG ti t chc W3C, nhng khng c k hoch thm phn h tr SVG vo trnh duyt Internet Explorer ca h.

Nhiu cng c xem SVG khc cng ang c pht trin: b cng c SVG ca d n Apache Batik da trn Java v c th dng trn nhiu nn tng khc nhau; Cng ty CSIRO c pht trin 1 cng c xem SVG cho nhng thit b di ng chy trn nhng Pocket PC-based PDA.

3.8.2.5 - Tng lai ca SVG

Mc d SVG hin nay t ti trng thi nh c gii thiu, nhm SVG ca W3C vn s tip tc pht trin chun ny bng cch thm vo nhng c trng cn thit. c nhng ti liu din t nhng phn m rng c th thm vo cc phin bn sau ny ca chun SVG. Mt yu cu quan trng l cp nht nhng phin bn v sau ca chun SVG phi tng thch vi SVG 1.0.3.9 - Khi qut mt s phn mm3.9.1 - MapInfo MapXtreme Java Edition 4.0. MapInfo MapXtreme Java Edition c thit k ton b bng cng ngh Java dng to bn server(mapping server) theo l thuyt chng trnh c th vn hnh mi ni. Cc ng dng nhm to bn c vit trn nn Java cho php nhng ngi pht trin vit mt chng trnh n trn nhiu nn khc nhau c cung cp my o (MapInfo,2001). MapJ API l h giao tip trnh ng dng pha client c s dng kt ni vi cc mapping engine MapXtremeServlet. MapXtremeServlet vn hnh nh cha kho ca sn phm ny, mt thnh phn pha server qun l cc yu cu gi n v tr v cc dch v thng tin bn , bao gm cc nh c yu cu (GIF, JPEG), cc d liu vector c yu cu (thng qua cc phng thc truy vn) v cc yu cu v metadata. N tng thch vi tt c cc Web Server/Browser c chng thc bi J2EE v khng cn ci thm mt chng trnh no. N c 4 thnh phn: i tng MAPJ, map Renderer hin th bn , Data Providers kt ni vi cc c s d liu khc nhau, v MapXtremeServlet. Thnh phn kin trc c bn to nn tnh linh hot cho MapXtreme trong vic trin khai trn bt c mt kin trc h thng web no. N c th d dng s dng vi web server h tr ISAPI, NSAPI, hay CGI gateways, chng hn nh Netscape, Apache, hay Micorsoft Internet Information Server. mt s yu cu cn thit thc thi MapXtreme trong vic to bn . Nhn chung, web server cn phi h tr servlet/Java Server Page hay n phi c tch hp vi cc trnh ph h tr servlet/JSP hay chy c lp vi servlet container chng hn nh trnh Tomcat, IBM WebSphene, iPlanet, v cc trnh khc. Hn th na, cu trc thick-client cho php t MapJ trn client-side. N c th nhn c bn theo bn vector v hin th bn t cc vector ny bng cc s dng my o Java c ci t ti browsers3.9.2 - ArcView Internet Map Server 1.0a. ArcView Internet Map Server (AVIMS): l phn m rng ca chng trnh ArcView GIS. Internet map server cung cp ArcView session c ngha l khi client tng tc vi web server thng qua mi trng internet yu cu thng tin v bn , web server thng qua AVIMS cung cp mt phin lm vic vi ArcView. AVIMS cung cp cc chc nng cng c h tr ph bin v tm kim, hin th, truy vn thng qua MapCafe Java applet. N ph hp vi ISAPI(Internet Server Application Programming Interface) v NSAPI (Netscape Internet Server Application Programming Interface). Hat ng theo m hnh server-side, h tr c nh dng d liu vector v raster nhng raster th s dng cc nh dang nh l GIF v JPEG. C nhiu cch c nhn ha cc trang AVIMS Webmapping, trong cch n gin nht l dng Avenue script. Avenue script l mt mi trng pht trin v ngn ng lp trnh hng i tng ca ArcView. Cc an script gip cho ta c th iu khin lm th no AVIMS a ra cc bn theo yu cu ca ngi dng. Thng Avenue hat ng trong mt h thng cc script dng xy dng ln mi trng lm vic c nhn qun l vic giao tip gia Arcview v ESRIMap web server. S dng Java-based Applet xy dng GUI. Khi ngi dng thm trang Webmapping, apllet s c download t Web server xung my ngi dng(client-side) v c bin dch nh vo my o Java(Java Virtual Machine) ca Web browser. pha user khng cn phi ci thm bt c g trc khi s dng cc ng dng Webmapping.3.9.3 - MapServer 3.6.1MapServer l mt chng trnh m ngun m c path trin xy dng d liu khng gian trn cc ng dng Internet. MapServer c bin dch trn hu ht UNIXes v chy di nn Windows NT/98/95, Linux, Apache. MapServer ni chung l c th chy ging nh mt ng dng CGI trn http server. ng dng MapServer c biu th bi ba thnh phn ct li: Mapfile, file mu, tp hp d liu GIS. Mapfile nh ngha cc d liu c s dng trong ng dng, hin th, cc bin truy vn, n ging nh tp tin file cu hnh ca ng dng. Mapfile cha cc thng tin v bn nh lm th no v bn , ch gii, bn c tr v t cc cu truy vn . File mu qun l lm th no cc bng ch gii, bn hin th trn trang html. Mapserver s dng file hnh vector ESRI. i vi d liu Raster Mapserver cung cp nhiu nh dng, nhng mc nh Mapserver h tr geo Tiff fileTng quan v kin trc h thng

Bng 1: Cc h iu hnh h tr cho client-server ca WebGIS

So snh cc chc nng gia cc phn mm

Bng 2: Cc feature v cng c

Phn 4 GI TH VIN M NGUN M GEOTOOLSMT TRONG NHNG GII PHP A H THNG THNG TIN A L LN NN WEB4.1 - Gii thiu gi th vin Geotools Geotools 2.0 l gi th vin m ngun m v GIS, h tr cho cng ngh Java. Geotools s dng d liu bn t .shp file , c s d liu, GML,SVG...a ra cc gi th vin h tr chc nng hin th, tng tc, phn tch, tch hp bn nh phng to, thu nh, di chuyn bn , ly thng tin d liu t mt i tng, truy vn Geotools 2.0 h tr c 2 k thut Web Map Service v Web Feature Service . Geotools 2.0 l gi th vin h tr cho Java nn khi s dng ta cn phi c cc gi:

Java 1.4.x or higher h tr mi trng Java. Tuy ni l gi jdk l 1.4 tr ln nhng Geotools cng khuyn co nn dng jdk1.4 v jdk1.5 tr ln s gp mt s li security. The Java Advanced Imaging Libraries (JAI), The Java Advanced Imaging Image I/O Tools h tr v hin th hnh nh bn .

M hnh cc gi chnh trong Geotools SHAPE \* MERGEFORMAT

Hnh 3.1 M hnh cc gi chnh trong geotools Cc gi chnh trong Geotools:

package data vi lp quan trng l FeatureSource gip cho vic c thng tin t cc ngun khc nhau chng hn nh file nh .shp, c t CSDL.

Cc package feature, styling, renderers gip cho vic m phng li cc i tng a l t cc file nh .shp hay t CSDL.

Package filter cho php chng ta c th truy xut cc thng tin t cc i tng a l m trong Geotools gi l cc Feature

4.2 - Cch ci t Tham kho phn ph lc4.3 - Cch to bn c bn

4.3.1 - S dng kin trc Shape file v Applet:

Yu cu v phn cng: Geotools l mt gi th vin h tr cho Java v GIS nn phn cng khng c yu cu c bitYu cu v phn mm: ngoi vic s dng cc phn mm lm vic vi Java nh JBuilder, Eclipseta cn s dng ph thm cc chng trnh Mapinfo, ArcView to ra d liu u vo l shape file. Bn cnh ta cn phi s dng n gi jai trong phn ci t h tr cho phn hin th bn

Cch thc hot ng ca kin trc: T cc phn mm GIS nh MapInfo,ArcView ta xut cc lp bn ra di dng cc file .shp(shape file). Cc file ny s l d liu u vo cho Server c h tr gi th vin Geotools. Server khi nhn c yu cu t pha Client s tin hnh qu trnh gi p li bn thng qua trang html cha Java-applets. Pha Client s tin hnh thao tc vi bn thng qua trang html/applet m khng phi mi ln thao tc vi bn phi kt ni i Server s l gi li cho ngi dng. y chnh l kin trc ThickClient ca WebGIS.

M hnh hot ng ca kin trc:

Hnh 3.2 : M hnh hat ng ca kin trc shape file v applet

Di y l giao din ca trang Applet s dng Geotools vi kin trc shape file, Applet. Trong chng trnh th mi hat ng ca trang Applet c iu khin trong trang chnh l LHaApplet_ToData. Ty theo tng vng ca hnh m t kin trc giao din chng trnh bn trn m c iu khin thng qua cc lp khc nhau.

Vng I: Thanh Tool bar iu khin cc chc nng hin th nh phng to, thu nh, xem thng tin ca i tng, xem ton cnh bn (tng ng vi nt Khi to). Vng ny c iu khin thng qua lp LHaApplet_ToData, MethodAction Buttons.

Vng II : Vng iu khin chc nng active, select ca cc lp bn . Vng ny c iu khin thng qua cc lp chnh l LHaApplet_ToData, HandlerActive MapLayer, HandlerSelectMapLayer.

Vng III : Vng hin th bn v thc hin cc chc nng dch chuyn bn . Vng ny c iu khin thng qua lp LHaApplet_ToData, MethodAction Buttons.

Vng IV: Vng tm kim v hin th kt qu vng ny c qun l thng qua lp LHaApplet_ToData, MethodActionButtons.

Hnh 3.3 : Trang applet ca kin trc shape file v applet4.3.1.1 - Qu trnh xy dng mt bn c bn trong GeotoolsMt bn c bn trong Geotools c xy dng thng qua cc bc c bn nh sau:

a. Chun b, thu thp d liu a l u vo bao gm cc shape file* hoc cc d liu t cc c s d liu nh PostgreSQL, MySQL,Oracle Mi lp bn thng c lu trong 1 file .shp hoc mt bng trong h qu tr c s d liu.

b. *shape file (.shp): l cc file chnh cha thng tin d liu ca cc i tng a l c to ra bi chng trnh ArcView.c. c d liu u vo: cng nh mt lp bn cha nhiu i tng, c trng a l, mi i tng a l li mang cc s liu thuc tnh ring bit, Geotools xy dng mt m hnh lu tr d liu c ln t cc file .shp, t cc bng ca h qun tr c s d liu mang nhiu nt tng ng. D liu tng qut ca lp bn c c ln v cha trong FeatureSource. FeatureSource li cha mt tp hp cc Feature. Mi Feature li c nhiu Attribute.d. Th hin mu sc ca bn : mt trong nhng iu quan trng to nn bn l mu sc, mu sc bn c bit l bn chuyn l rt quan trng. i vi tng loi bn khc nhau thng c cc tiu chun mu khc nhau do cc t chc nh ra. Do t c nhng tnh cht ca bn thc ta cn phi kt hp cc kiu th hin v cc mu sc bn cho ph hp.

e. To kiu hin th cho cc i tng a l: Nu d liu (featureSource, cc feature ) l phn hn th cc Style, Symbolizer trong gi styling l phn xc, phn th hin ra bn ngoi ca d liu. Tng ng vi kiu ca tng i tng a l gi th vin cung cp cc kiu hin th cho ph hp (i tng kiu Line th kiu th hin l LineSymbolizer,)

f. Xy dng li lp bn bng Geotools: mt lp bn (MapLayer, DefaultMapLayer) c to nn bi d liu v lp bn v kiu th hin ca n.

g. Qun l cc lp bn : mt bn c to nn bi nhiu lp bn . Tp hp cc lp bn c lin kt vi nhau nh vo lp MapContext ca Geotools.

h. Qun l vic hin th bn : t tp hp cc lp bn c qun l trong lp MapContext Geotools cung cp lp StyledMapPane cha MapContext v qun l vic hin th ca bn . StyledMapPane kt hp vi cc lp trong gi render h tr cc chc nng c bn c sn ca gi th vin nh phng to, thu nh, di chuyn bn . StyledMapPane thc cht l mt JComponent trong Java Swing cha cc lp bn nn StyledMapPane c th xut hin. s dng, tng tc c ta cn phi gn n vo JFrame, Applet, JApplet vi s h tr ca chng trnh JBuilder chy ti my tnh cc b hoc gn vo Applet, JApplet ng gi chy tch bit vi JBuilder, s dng my o Java. nu chy ti my tnh cc b

Tm li vi 7 bc c bn trn chng ta c th to ra mt bn c bn c cung cp mt s chc nng hin th c bn nhng chng ta vn cha lm ch c cc cch thc hin th ca Geotools m ch s dng nhng h tr c sn. Mc khc cc chc nng v tch hp v phn tch cha c th hin. hiu r cc tnh nng v cch thc h tr ca Geotools phn nng cao s a ra cc hng dn chi tit. Da vo tnh cht d liu u vo ti chng ti i theo 2 hng l phn nghin cu phn u vo l shape file v phn u vo l c s d liu

4.3.1.2 - Chun b, thu thp d liu a l u vo

i vi d liu u vo l shape file ta c th c c trc tip shape file trc tip t chng trnh ArcView hoc s dng cc file d liu t chng trnh MapInfo chuyn i qua nh dng ca shape file.

Cch thc t chc, lu tr d liu khng gian trong MapInfo v ArcView:

i. MapInfo:

Mapinfo c 5 kiu lu tr d liu file:.TAB : m t cu trc d liu file chnh

.DAT : d liu thuc tnh dng bng

.MAP: d liu khng gian(ta cc i tng a l)

.ID : thng tin lin kt gia d liu thuc tnh v v tr ca cc i tng a l

.IND : sp xp cc phn t theo th t ca cc ct(gip tm kim i tng ha khi s dng ch nng Query/Find)

Thng tin ta a l, kiu th hin ca i tng c th hin trong lp MAP c th xem c d liu ta xut t file .MAP sang file .MIF c th xem c bng wordPad, notePad.

Hnh 3.4: Cc kiu th hin trong MapInfoCc kiu i tng khc nhau c th c lu trn cng mt file .MAP(chng hn nh kiu ng, kiu im, kiu vng c th m t trong 1 lp d liu)

ii. ArcView:

Arcview c 3 kiu d liu

.shp: y l file chnh cha cc feature geometry cng mt lai. Trong file .shp lun c mt ct mt nh Shape t ng lu tr kiu d liu v cc v tr ta ca tng i tng a l nhng ta khng th xem c trong chng trnh v tr ta ca tng im to nn i tng.

.shx: cha cc v tr ca cc i tng a l

.dbf: dBase file cha cc thng tin thuc tnh ca cc feature dng bng

Arcview shape file (.shp) cha cc nontopology geometry v thng tin d liu khng gian ca n. Shape file trong Arcview tng ng vi .MAP file trong Mapinfo. Nhng trong Shape file ch lu theo cch mi i tng geometry (ng, im, vng) l mt file.

Hnh 3.5: Cc kiu i tng trong ArcView

Hnh 3.6: Xem bn v thng tin trong ArcViewCch chuyn i thng tin t MapInfo sang ArcView:

Geotools h tr vic c d liu t cc file nh bn c ui l .shp (c to ra t chng trnh ArcView). s dng cc file .TAB c to ra t MapInfo cho Geotools ta thc hin vic chuyn i d liu bng cc chc nng c sn trong chng trnh.

Bc 1 : Vo Tools/Universal Translator/Universal Tranlator

Hnh 3.7: Chuyn tp tin MapInfo sang ArcViewBc 2: Chn tp tin .TAB cn chuyn i, ch ng dn n ni cn t file .SHP c chuyn i.

Hnh 3.8: Chn kiu tp tin chuyn i tp tin MapInfo4.3.1.3 - - Cch c d liu t mt file .shp

C 2 cch c d liu t mt file .shp:

c d liu phc v cho vic hin th ti my tnh cc b:

Khi qut: To lp ShapefileData nhn vo URL l a ch file .shp, s dng phng thc getFeatureSource(tn ca file .shp nhng khng c km ui shp) ly c FeatureSource, c th dng ng dn tuyt i ln ng dn tng i ch ng dn n file .shp.

C th: C 2 cch c d liu t mt file .shp

Cch 1:

Nhp trc tip phn tn ca file .shp. Cch ny thng c dng i vi nhng ngi mi bt u vi mc ch test th phng thc ca chng trnh.

To ng dn URL n v tr file .shp trn my tnh cc b :

URL shapeURL = (new File(path)).toURL();

To ShapefileDataStore t URL:

ShapefileDataStore store = new ShapefileDataStore(shapeURL);

To FeatureSource:

FeatureSource source = store.getFeatureSource (name);

Cch 2:

S dng phng thc ph tr c vit bi Java ly phn tn ca file .shp. t ng ha hn v trnh sai st t pha ngi dng ta c th dng ta c th vit thm mt s phng thc. Trong phm vi ti ny ti c vit 2 phng thc phc v cho vn ny: phng thc chnh l phng thc getFeatureSourceFromDataStore_C2(String path), phng thc ph h tr vic ly phn tn ca file .shp l phng thc getName(String URLDataStore) c hai phng thc ny u nm trong lp ReadDataStoreFile trong project.

private static String getName(String URLDataStore){

String fullfileName = URLDataStore.split("/")[URLDataStore .split("/"). length -1] ;

String fileName = fullfileName.substring(0,fullfileName.length() - 4);

String typeFile = fullfileName.substring(fullfileName.length()-3,

fullfileName.length());

if(typeFile.equals("shp")){

return fileName;

}

else return "The File isn't .shp "; }

public static FeatureSource getFeatureSourceFromDataStore_C2(String path){

try {

URL URL_Path = (new File(path)).toURL();

ShapefileDataStore ds = new ShapefileDataStore(URL_Path);

FeatureSource fs = ds.getFeatureSource(ReadDataStoreFile.getFeatureSource(path));

return fs;

}

catch (Exception ex) {

throw new RuntimeException(ex.getMessage());

}

}

Cch 3:

S dng phng thc getTypeName() ly phn tn ca file .SHP. y l cch hiu qu nht v tt nht va khi vit thm phng thc va d dng tip cn, li trnh c sai phm t pha ngi dng khi nhp phn tn ca file .shp.

ly phn tn ca file .shp ta ch cn thm vo 1 dng

String name = store.getTypeNames()[0];

ngha : phng thc getTypeNames() ca ShapefileDataStore tr v String[ ] l tn cc kiu th hin ca d liu trong ShapefileDataStore. y ta dng store.getTypeNames()[0] tc l ly phn t u tin. Trong thc t ngi ta thng lu mi lp d liu bn thnh 1 file .shp nn String[] ch thng cha mt phn t. Chng hn nh khi to lp d liu bn v ranh gii gia cc qun ca thnh ph ta dng cc th hin l kiu vng lu li ta c file RGHC_region.shp th lc dng store.getTypeNames() s tr v mt mng String[ ] c mt phn t l RGHC_region .

Trong project, th hin cch trn ta dng phng thc getFeatureSourceFromDataStore_C1(String path) trong lp ReadDataStoreFile.

public static FeatureSource getFeatureSourceFromDataStore_C1(String path){

try {

URL shapeURL = (new File(path)).toURL();

ShapefileDataStore store = new ShapefileDataStore(shapeURL);

String name = store.getTypeNames()[0];

FeatureSource source = store.getFeatureSource(name);

return source;

}

catch (Exception ex) {

throw new RuntimeException(ex.fillInStackTrace());

}

}c d liu phc v cho vic ng gi, hin th trn Web:

Khi qut: Kh ging vi cch c file phc v cho vic chy ti my tnh cc b nhng khc ch l cch ly URL t ng dn n file .shp v ng dn ny bt but phi l ng dn tng i.

Chi tit: Ta vit thm vo phng thc getResource(String path) nhn vo a ch tng i n file .shp tr v a ch URL ca file.shpprivate static URL getResource(String path) {

return ReadDataStoreFile.class.getClassLoader().getResource(path);

}

S dng phng thc trn truy cp a ch URL ca file .shp v cch thc ly phn tn ca file .shp ging nh cch 3 ca c file phc v cho my tnh cc b ta c phng thc getFeatureSourceFromDataStore_Web (String URLDataStore) trong lp ReadDataStoreFile.

public static FeatureSource getFeatureSourceFromDataStore_Web(String URLDataStore){

try {

URL url = getResource(URLDataStore);

ShapefileDataStore ds = new ShapefileDataStore(url);

String name = ds.getTypeNames()[0];

FeatureSource fs = ds.getFeatureSource(name);

return fs;

} catch (Exception ex) {

throw new RuntimeException();

}

}4.3.1.4 - Th hin mu sc ca bn

to nn mt bn ngoi nhng d liu lin quan n vic xy dng bn nh d liu khng gian v d liu a l th mu sc ca bn cng rt quan trong v n quyt nh l hnh nh ta gi l bn c c mi ngi xem l bn hay khng. i vi nhng bn ranh gii hnh chnh ta c th dng nhiu mu sc khc nhau hin th tng vng mt cch ty . Nhng i vi cc bn chuyn nh cc loi t chng ta phi dng n cc chun mu c cng nhn ph hp vi vic hin th i tng a l .

Nu s dng cc loi mu sc do ty ngi dng th ta s dng lp Color ca gi java.awt to mu mnh yu thch bng cch nhp vo cc thng s R,G,B hay l gi n cc mu c sn trong lp Color dng.

to bn mt cch chuyn nghip ta cn phi t chc lu tr thng tin bn mu. Di y l mt s gii php a ra gii quyt vn lu tr thng tin bn mu.

to mt bn ta cn phi tun theo mt chun mu nht nh do mt t chc no nh ra, Vit Nam t chc l B Ti Nguyn v Mi Trng . Bng qui nh mu Mu loi t th hin trn bn hin trng s dng t v bn qui hoch s dng t.(B Ti Nguyn v Mi Trng)) c chng ti s dng tham kho th hin cc gii php v lu tr thng tin v truy xut thng tin v mu ca bn .

Gii quyt vn bng mu ti a ra 3 gii php:

1. Lu tr bng mu di dng file text.

2. Lu tr bng mu di dng file cu trc.

3. Lu tr bng mu bng c s d liu.

File TextFile Cu TrcC S D Liu

Bng mu c lu tr di dng file text bng cch lu tn ca cc lai t khng c khong trng, sau cc thng tin v m t, thng s mu R, G, B cch nhau bng 1 TAB.

Cch x l d liu lu tr bng file text. D liu c ly ln thng qua FileReaderD liu ly ln u dng String.Bng mu c lu tr di dng file cu trc bng cch lu i tng lai t (m t, tn t c khang trng, R, G, B)t trn m Java xung thnh file .dat .

Cch x l d liu lu tr bng file cu trc, d liu c ly ln thng qua RandomAccessFileD liu ly ln l i tng lai t.Bng mu c lu tr di dng c s d liu bng cch xy dng bng mu loi t bao gm cc ct m t, tn t c khong trng, R, G, B

Cch x l d liu bng c s d liu bng cch thit lp cu ni jdbc vi cc h qun tr c s d liu, ly cc thng tin di dng String, int

u im:

Cch lu tr ny n gin v ngi dng c th d dng thay i cp nht thng tin bng cch tc ng vo file text.

C th ng gi chy Applet.u im:

Cch lu tr ny khc phc c nhc im ca ca file text l cc lu tr v truy xut tt cc i tng chui c khang trng.

D lic c ln t file cu trc l i tng khng cn phi xy dng li i c lc c t file cu trc ln.

C th ng gi chy Applet.u im:

Cch lu tr ny c kh nng truy xut tm kim phc tp v update tt.

Khuyt im:

Do l file text nn d liu phi l d liu n gin, khng lu tr dng i tng c. Lu tr tt i vi cc con s trong cc bng ca mn xc xut thng k,.Lu tr khng c hiu qu i vi cc String c khang trng.

V d: Nu ta lu tr bng mu bng file text m tn loi t c vit c khang trng th khi truy xut d liu ta s gp phi vn khi file text c chng trnh c ln s tr v danh sch cc dng c trong text, ly c d liu tng dng ta li dng StringTokenizer vi phng thc hasMoreTokens() v nextToken() ly tng phn ca dng. Nhng m hm li ly cc phn t phn cch nhau bng khang trng nn nu lc u nu ta vit file text tn t c khang trng th y khi c ln tn t s b tch ra thnh tng phn nh chng hn tn t l t chuyn trng la nc trong file text th khi chng trnh c ln s l t, chuyn, trng, la, nc. Nh vy ng vi mi tn t khc nhau s c s lng t khc nhau dn n khng c kh nng c ln chnh xc tn ca tng loi t khi dng file text c tn loai t c khang trng.Khuyt im:

Phi to d liu trc t trn Java ri lu xung thnh file cu trc.

Kh nng cp nht d liu km.Khuyt im:

V c lu tr bi h qun tr c s d liu nn n khng th ng gi chy Applet c.

Bng 3: So snh cc gii php cho bng muQua thc nghim v so snh cng vi iu kin thc t l th hin trn nn Web chng ti chn gii php file cu trc hin thc.

Hnh 3.9 M hnh UML bng muCCH S DNG BNG MU TRONG CHNG TRNH.

s dng mu t bng mu ta lm nh sau:

Bc 1: Khi to Bng Mu Lai t:

LandPallet bangmau = new LandPallet(); Bc 2: Gi n cc phng thc trong bng mu

Cc phng thc c trong bng mu:

1. Hm findColorByLandName(String tenDat) tr v Object. y l hm chnh.Chc nng ca hm l gip ngi dng c th tm kim cc mu ca lai t mnh mong mun. Hm s tr v Color nu tn t nhn vo l chnh xc, tr v danh sch cc LandColor c landName cha chui nhn vo. Nu chui nhn vo khng c trong bt k mt landName no hm s tr v Input string is invalid.2. Hm absoluteFind_LandName(String tenDat) tr v List cc LandColor. Chc nng ca hm: nhn vo tn t tr v danh sch cc LandColor c landName cha tt c cc t trong chui nhn vo.

3. Hm List relativeFind_LandName(String tenDat) tr v List cc LandColor. Chc nng ca hm: nhn vo tn t tr v danh sch cc LandColor c landName cha 1 ( tt c cc t trong chui nhn vo.

4. Hm exactlyFind_LandName(String tenDat) tr v Color ca t thng qua tn t, nu khng tm thy tr v null.

5. Hm exactlyFind_LandCode(String maDat) tr v Color ca t thng qua m t, nu khng tm thy tr v null.

4.3.1.5 - To kiu hin th cho cc i tng a l

Trong Geotools to kiu hin th cho d liu a l ta phi tng tc vi gi org.geotools.styling, di y m hnh th hin mi lin h gia cc lp trong gi:

Hnh 3.10: M hnh gi org.geotools.styling to kiu hin th cho i tng a l ta cn xc nh kiu ca i tng a l c c ln t file hnh .shp l kiu ng, kiu vng hay kiu im m s dng Style Builder kt hp vi vic to cc kiu d liu tng ng vi cng c h tr l cc lp trong gi styling. nu kiu ng dng LineSymbolizer, kiu vng dng PolygonSymbolizer, kiu im dng PointSymbolizer, kiu Text dng TextSymbolizer, kiu nh Raster dng RasterSymbolizer.

Cc Symbolizer sau khi c to ra phi c tch hp vo trong Style to thnh kiu hin th thc s ca mt lp bn . Mt Style c th cha mt hay nhiu Symbolizer chng hn nh khi hin th bn phc v cho vic chit xut bn ta phi xut bn ra mn hnh va c hnh nh ca i tng a l va phi c mt s thng tin thuc tnh ca i tng chng hn i tng tn g, din tch bao nhiu th ta phi to ra hai Symbolizer, mt Symbolizer phc v cho vic to kiu bn chng hn nh PolygonSymbolizer, mt Symbolizer phc v cho vic ly thng tin thuc tnh ca i tng v hin th di dng vn bn l TextSymbolizer, c hai Symbolizer ny s cng c tch hp vo cng mt Style.

Hng dn cch s dng cc lp Symbolizer

( Phn code trong phn hng dn ny c vit trong lp MyStyle ca chng trnh.)

to ra cc Symbolizer trc ht ta phi to ra StyleBuilder, n ng vai tr nh mt b my to ra cc kiu th hin hin.

StyleBuilder sb = new StyleBuilder();

1. Kiu im lp PointSymbolizer:

Khi ni n kiu im th vic quan trong nht trong cch th hin mt im l hnh nh th hin ca im . Geotools cung cp cho chng ta mt th vin mt s hnh nh c bn nhng ng thi cng cung cp cch th hin mt im thng qua cc hnh nh ca ngi dng a vo, cc nh ny phi c ui .jpg hay .png.

Cch th hin mt im da vo cc kiu mc nh ca Geotools:

S dng kiu hin th im vi kch c v hnh nh c ly t th vin mc nh ca Geotools.

Hnh 3.11 Cc kiu hin th im ca geotools to ra hnh nh hin th t th vin mc nh ca Geotools ta s dng n lp Mark, lp ny c to ra cha cha hnh nh mc nh c ngi dng c nhn ha thng qua cch la chn cc mu sc.

Mark aMark = sb.createMark(styleDefault, fill, border, width);

StyleDefault dng chui nhn vo tn ca hnh nh mun th hin trong lp StyleBuilder. Cch s dng lp StyleBuilder chm gi trc tip cc thuc tnh static ca lp ny. Chng hn mun s dng hnh nh hin th ca mt im l hnh ngi sao ta dng StyleBuilder.MARK_STAR.

Ngoi ra Geotools cn h tr cho ta t mu cc i tng hin th c bn thng qua cc thng s fill, border,width. Fill mu nn bn trong ca hnh. Border l mu ng vin bao quanh hnh. Width l dy ca ng vin.

Sau khi to ra i tng Mark, ta to ra i tng Graphic cha i tng ny bng phng thc createGraphic ca lp StyleBuilder. Phng thc ny c 3 thng s nhng ta chi nhp thng s th 2 dnh cho i tng Mark, cn hai thng s cn li thng s 1 dnh cho ExternalGraphic, thng s th 3 dnh cho Symbolizer nn ta l null.

Graphic pGraphic = sb.createGraphic(null, aMark, null);

Cui cng to thnh kiu PointSymbolizer phc v cho vic hin th kiu im ta s dng phng thc createPointSymbolizer ca StyleBuilder nhn vo i tng Graphic c tao trn.

PointSymbolizer ps = sb.createPointSymbolizer(pGraphic);

tham kho cch vit mt cch c th ca kiu im th tham kho on code di y.public PointSymbolizer createDefaultPointSymbolizer(String styleDefault , Color fill,Color border, double width) {

Mark aMark = sb.createMark(styleDefault, fill, border, width);

Graphic pGraphic = sb.createGraphic(null, aMark, null);

return sb.createPointSymbolizer(pGraphic); } i vi cch th hin mt im nh trn th ta khng th chnh sa c kch thc ca hnh nh th hin ca im. c nhn ha lun c kch thc ca hnh nh hin th ca im ta cng thm phng thc setSize() ca lp Graphic sau khi to ra n. Tuy nhin trong Geotools khng phi khi setSize l ta nhp vo trc tip kch c cn thay i m phi thng qua Expression. Expression y ta dng l LiteralExpression dnh cho cc kiu nhn vo dng s hc.

to ra LiteralExpression ta cn thng qua lp FilterFactory, lp ny ng vai tr nh b lc trong Geotools, n h tr ch yu cho vic truy vn trong Geotools(phn ny s c ni r hn trong phn cha nng m rng ca Geotools) v to ra cc Expression.

FilterFactory ff = FilterFactory.createFilterFactory();

Sau khi to ra FilterFactory, ta tin hnh cc bc ging nh cch lm trn nhng trc khi to thnh PointSymbolizer th ta setSize ca Graphic bng cch:

pGraphic.setSize(ff.createLiteralExpression(size));

tham kho cch vit mt cch c th ca kiu im th tham kho on code di y. //Change size Mark

public PointSymbolizer createPointSymbolizer(String styleDefault,double size, Color fill,

Color border, double width) {

FilterFactory ff = FilterFactory.createFilterFactory();

Mark aMark = sb.createMark(styleDefault, fill, border, width);

Graphic pGraphic = sb.createGraphic(null, aMark, null);

pGraphic.setSize(ff.createLiteralExpression(size));

sb.createFill();

return sb.createPointSymbolizer(pGraphic);

}

Hnh 3.12 Hin th lp kiu im ca geotools Cch th hin mt im da vo cc hnh nh c ngi dng a vo:

Trc nhu cu c nhn ha cch hnh nh hin th khng ch dng li vic thay i mu sc, kch thc ca cc i tng c sn ca ngi dng m mun thay lun c hnh dng ca i tng hin th bng cc hnh nh m h c, Geotools a ra lp ExternalGraphic vi mc ch hin th cc hnh nh nm ngai Geotools thnh kiu hin th ca im c o ca ngi dng.

to ra ExternalGraphic ta s dng phng thc createExternalGraphic() ca StyleBuilder, phng thc ny nhn vo ng dn n file hnh v mt string c bit c vit theo kiu:

image/ + tn ui ca file hnh (png hay jpg)

t ng ha hn v trnh sai st t pha ngi dng khi nhp ui ca file nh vo phng thc ti vit thm phng thc h tr trong lp ReadDataStoreFile ca project vi tn l getTypeOfFile(pathPicture).

ExternalGraphic icon = sb.createExternalGraphic(new File(pathPicture).toURL(), "image/"+ReadDataStoreFile.getTypeOfFile(pathPicture));

Khi to Graphic ta cng s dng phng thc createGraphic() ca StyleBuilder nhng li s dng createGraphic() vi 5 thng s nhn vo ta c th chnh sa kch c ca hnh nh, lu l kch c nh y l dng pixel nu nhn vo kch c l 32 tc l 32 * 32 pixel, cc kch c thng dng c h tr l 16, 32.

Graphic graphic = sb.createGraphic(icon,null,null,1,pixel,0);

tham kho cch vit mt cch c th ca kiu im th tham kho on code di y. //Default PointSymbolizer

public PointSymbolizer createCustomPointSymbolizer(String pathPicture, int pixel) throws MalformedURLException {

ExternalGraphic icon = sb.createExternalGraphic(new File(pathPicture).toURL(), "image/" + ReadDataStoreFile.getTypeOfFile(pathPicture));

Graphic graphic = sb.createGraphic(icon,null,null,1,pixel,0);

PointSymbolizer pSym = sb.createPointSymbolizer(graphic);

return pSym;

}

Hnh 3.13 Hin th lp kiu im bng hnh nh bn ngoi tham kho cch vit mt cch c th ca kiu im th tham kho lp MySymbolizer trong project. V mun r hn v cch s dng ca phng thc trn th vo lp LHa_UBXa trong project ca ti xem lm th no hin th cc y ban ca huyn Lm H. 2. Kiu ng lp LineSymbolizer:

Cch hin th kiu ng cng ging cch hin th kiu im nhng n gin hn. Cch cch th hin nh kiu im cng c dng cho kiu ng nhng khng c dng ph bin lm nn tm thi khng cp y.

Cch to kiu ng n gin nht v thng dng nht l s dng phng thc createLineSymbolizer() nhn vo 2 thng s l mu sc v dy ca ng.

tham kho cch vit mt cch c th ca kiu im th tham kho on code di y. public LineSymbolizer createLineSymbolizer(Color color, double width) {

return sb.createLineSymbolizer(color, width);

}

Hnh 3.14 Hin th lp kiu ng tham kho cch vit mt cch c th ca kiu ng th tham kho lp MySymbolizer trong project. V mun r hn v cch s dng ca phng thc trn th vo lp LHa_Song trong project ca ti xem lm th no hin th cc con sng ca huyn Lm H. 3. Kiu vng lp PolygonSymbolizer:

hin th kiu vng cng s dng lp StyleBuilder gi phng thc createPolygonSymbolizer(fill, border, width) vi fill l mu nn, border l mu ng vin,width l dy ng vin.

PolygonSymbolizer ps = sb.createPolygonSymbolizer(fill, border, width);

i vi kiu vng ngi ta thng s dng km vi trong, c (Opacity) bng cch hiu chnh trc tip trn PolygonSymbolizer thng qua phng thc setOpacity(). Vic hiu chnh ny gip cho khi xy dng cc lp d liu cng kiu vng ta c th nhn xuyn qua.

tham kho cch vit mt cch c th ca kiu im th tham kho on code di y. //Polygon Symbolizer

public PolygonSymbolizer createPolygonSymbolizer(Color fill, Color border, double width, double opacity) {

PolygonSymbolizer ps = sb.createPolygonSymbolizer(fill, border, width);

ps.getFill().setOpacity(sb.literalExpression(opacity));

return ps;

}

Hnh 3.15: Hin th lp kiu vng tham kho cch vit mt cch c th ca kiu vng th tham kho lp MySymbolizer trong project. V mun r hn v cch s dng ca phng thc trn th vo lp LHa_RGHC trong project ca ti xem lm th no hin th ranh gii gia cc x ca huyn Lm H. 4. Kiu text lp TextSymbolizer:

Thc ra kiu text khng l mt kiu th hin ca i tng bn , n c xy dng ch vi mc ch hin th thng tin thuc tnh ca i tng a l ln trn lp bn phc v cho vic chit xut bn .

Cch s dng lp TextSymolizer cn ta phi xc nh mt s thng s c bn nh kiu ch th hin, mu sc ca ch, tn ct d liu cn ly thng tin. Lu cho d trong bng thng tin d liu thuc tnh ca i tng a l c cc tn cc ct c vit theo kiu ch thng hay kiu c ch ci u vit hoa th khi vit tn ct cn ly d liu trong Geotools th tn ct phi c vit hon ton bng ch hoa.

ts = sb.createTextSymbolizer(colorText, font, columnData);

tham kho cch vit mt cch c th ca kiu im th tham kho on code di y.

public TextSymbolizer createTextSymbolizer(Font fontText,Color color, String columnData){

org.geotools.styling.Font font = sb.createFont(fontText);

TextSymbolizer ts = null;

try {

ts = sb.createTextSymbolizer(colorText, font, columnData);

ts.setHalo(sb.createHalo(Color.WHITE, 1, 2));

return ts;

}

catch (Exception ex) {

throw new RuntimeException(ex.fillInStackTrace());

}

}

5. Kiu raster lp RasterSymbolizer:

D liu raster c ly t nhiu ngun c th s dng cc cng ngh hin a nh nh hng khng, nh vin thm nhng chng khng l d liu bn . Chng khun dng cc a t, cc tp. Chng thng m t cc d liu c tnh cht thay i theo thi gian, thay i theo cao chng hn s tahy i ca thm thc vt rngCc d liu s khng dng im, dng ng, dng vng th hin i tng thc t m chng dng ma trn im, mi im nh c gi l pixel. Chnh v th an code di y ch nhm minh ha cho chc nng h tr nh raster di nh dng .dem ch khng c s dng trong phn project minh ha ca ti.

ColorMap cm =

sb.createColorMap(

new double[] { 1000, 1200, 1400, 1600, 2000 },

new Color[] {

new Color(0, 255, 0),

new Color(255, 255, 0),

new Color(255, 127, 0),

new Color(191, 127, 63),

new Color(255, 255, 255)},

ColorMap.TYPE_RAMP);

RasterSymbolizer rsDem = sb.createRasterSymbolizer(cm, 1);

Style demStyle = sb.createStyle(rsDem);

Cch tch hp Symbolizer vo StyleSau khi to ra cc Symbolizer ta c th dng phng thc createStyle()ca lp StyleBuilder nhn vo thng s l Symbolizer va to nn kiu thc s ca i tng a l. Chng ta s thy tht v l nu nh ta to ra Symbolizer ri li phi to ra Style cha Symbolizer iu ny tht l rc ri. nhng thc t th Style c nhim v ring ca n. N c kh nng tch hp c nhiu Symbolizer hay ni n gin Style l mt tp hp cc Symbolizer. i vi vic chit xut bn th i hi i tng c khng ch c hin th m cn phi hin th km vi thng tin d liu thuc tnh th Style tht s hu ch.

s dng c Style cha nhiu Symbolizer ta cn phi to ra Rule bng cch dng phng thc createRule() ca lp StyleBuilder nhn vo mt mng cc Symbolizer.

Rule rules = sb.createRule(s);

To Style thng qua phng thc createStyle()ca lp StyleBuilder khng c thng s, s dng phng thc addFeatureTypeStyle() gn vo cc Symbolizer.

public Style addRule(Symbolizer[] s){

Rule rules = sb.createRule(s);

Style style = sb.createStyle();

style.addFeatureTypeStyle(sb.createFeatureTypeStyle(null,rules));

return style;

}

Phng thc trn c vit trong lp MySymbolizer ca project mi ln tao ra Style ta ch cn nhn vo mt mng Symbolizer. Nu mng Symbolizer cha nhiu Symbolizer cng mt kiu th Symbolizer no c c ng trc trong mng Symbolizer th s c hin th thnh ci di cng.

Chng hn nu ta to ra hai kiu hin th cho sng bng hai kiu LineSymbolizer, kiu 1 Symbolizer mu xanh , dy ca ng l 2; kiu 2 Symbolizer mu trng , dy ca ng l 1, kiu 1 trc kiu 2 trong mng Symbolizer th kt qu l con sng c mu trng gia, hai bn l mu xanh. To kiu hin th cho y ban x huyn Lm H km vi thng tin tn y ban x.

Hnh 3.16 Bn huyn Lm H1. Xy dng li lp bn bng Geotools: mt lp bn (MapLayer, DefaultMapLayer) c to nn bi d liu v lp bn v kiu th hin ca n.

2. Qun l cc lp bn : mt bn c to nn bi nhiu lp bn . Tp hp cc lp bn c lin kt vi nhau nh vo lp MapContext ca Geotools.

Qun l vic hin th bn : t tp hp cc lp bn c qun l trong lp MapContext Geotools cung cp lp StyledMapPane cha MapContext v qun l vic hin th ca bn . StyledMapPane kt hp vi cc lp trong gi render h tr cc chc nng c bn c sn ca gi th vin nh phng to, thu nh, di chuyn bn . StyledMapPane thc cht l mt JComponent trong Java Swing cha cc lp bn nn StyledMapPane c th xut hin. s dng, tng tc c ta cn phi gn n vo JFrame, Applet, JApplet vi s h tr ca chng trnh JBuilder chy ti my tnh cc b hoc gn vo Applet, JApplet ng gi chy tch bit vi JBuilder, s dng my o Java. nu chy ti my tnh cc b4.3.1.6 - Xy dng, qun l cc lp bn

Sau khi c c thng tin t dng FeatureSource v kiu hin th ca feature source ta hon tt vic chun b hin th.

To lp MapLayer cha d liu a l ca i tng v cch th hin ca n thng qua lp DefaultMapLayer l hin thc ca interface MapLayer.

MapLayer layer = new DefaultMapLayer(featureSource, style);

Sau khi to ra cc mapLayer ta tch hp cc lp ny vo trong 1 mapContext thng qua phng thc addLayer(), phng thc ny c kh nng nhn vo featureSource v style t ng to thnh MapLayer trong ContextMap hoc nhn vo MapLayer c to trc t featureSource v style.

MapContext mapContext = new DefaultMapContext();

mapContext.addLayer(featureSource, style);

hay

mapContext.addLayer(layer);

MapContext cung cp cc hm gip cho vic qun l cc lp d liu nh:

Method Summary

voidaddLayer(FeatureCollectioncollection, Stylestyle) Add a new layer and trigger a LayerListEvent.

voidaddLayer(FeatureSourcefeatureSource, Stylestyle) Add a new layer and trigger a LayerListEvent.

booleanaddLayer(intindex,MapLayerlayer) Add a new layer in the specified position and trigger a LayerListEvent.

booleanaddLayer(MapLayerlayer) Add a new layer if not already present and trigger a LayerListEvent.

intaddLayers(MapLayer[]layers) Add an array of new layers and trigger a LayerListEvent.

voidaddMapBoundsListener(MapBoundsListenerlistener) Register interest in receiving MapBoundsEvents.

voidaddMapLayerListListener(MapLayerListListenerlistener) Register interest in receiving a LayerListEvent.

voidaddPropertyChangeListener(java.beans.PropertyChangeListenerlistener) Registers PropertyChangeListener to receive events.

voidclearLayerList() Clears the whole layer list.

java.lang.StringgetAbstract() Get the abstract which describes this interface, returns an empty string if this has not been set yet.

com.vividsolutions.jts.geom.EnvelopegetAreaOfInterest() Gets the current area of interest.

java.lang.StringgetContactInformation() Get the contact information associated with this context, returns an empty string if contactInformation has not been set.

org.opengis.referencing.crs.CoordinateReferenceSystemgetCoordinateReferenceSystem() Get the current coordinate system.

java.lang.String[ ]getKeywords() Get an array of keywords associated with this context, returns an empty array if no keywords have been set.

MapLayergetLayer(intindex) Return the requested layer.

com.vividsolutions.jts.geom.EnvelopegetLayerBounds() Get the bounding box of all the layers in this MapContext.

intgetLayerCount() Returns the number of layers in this map context

MapLayer[ ]getLayers() Return this model's list of layers.

java.lang.StringgetTitle() Get the title, returns an empty string if it has not been set yet.

intindexOf(MapLayerlayer) Returns the index of the first occurrence of the specified layer, or -1 if this list does not contain this element.

java.util.Iteratoriterator() Returns an iterator over the layers in this context in proper sequence.

voidmoveLayer(intsourcePosition, intdestPosition) Moves a layer from a position to another.

MapLayerremoveLayer(intindex) Remove a layer and trigger a LayerListEvent.

booleanremoveLayer(MapLayerlayer) Remove a layer, if present, and trigger a LayerListEvent.

voidremoveLayers(MapLayer[]layers) Remove an array of layers and trigger a LayerListEvent.

voidremoveMapBoundsListener(MapBoundsListenerlistener) Remove interest in receiving a BoundingBoxEvents.

voidremoveMapLayerListListener(MapLayerListListenerlistener) Remove interest in receiving LayerListEvent.

voidremovePropertyChangeListener(java.beans.PropertyChangeListenerlistener) Removes PropertyChangeListener from the list of listeners.

voidsetAbstract(java.lang.StringconAbstract) Set an abstract which describes this context.

voidsetAreaOfInterest(com.vividsolutions.jts.geom.EnvelopeareaOfInterest) Set a new area of interest and trigger an BoundingBoxEvent.

voidsetAreaOfInterest(com.vividsolutions.jts.geom.EnvelopeareaOfInterest, org.opengis.referencing.crs.CoordinateReferenceSystemcoordinateReferenceSystem) Set a new area of interest and trigger a BoundingBoxEvent.

voidsetContactInformation(java.lang.StringcontactInformation) Set contact inforation associated with this class.

voidsetKeywords(java.lang.String[]keywords) Set an array of keywords to associate with this context.

voidsetTitle(java.lang.Stringtitle) Set the title of this context.

voidtransform(java.awt.geom.AffineTransformtransform) Transform the coordinates according to the provided transform.

Cc hm thng c s dng l

1. Tt c cc phng thc addLayer() thm lp bn .

2. removeLayer(MapLayer ml) lai b mt lp bn ra khi mapContext.

3. removeLayers(MapLayer[] mlArray) lai b mt tp hp lp bn ra khi mapContext.

4. moveLayer(int currentIndexLayer, int newIndexLayer) di chuyn v tr cc lp bn .

5. getLayerCount() s lp bn m MapContext cha

6. getLayer(int indexLayer) tr v mt lp bn v tr xc nh

7. getLayers() tr v mt mng cc lp bn

8. indexOf(MapLayer ml) tr v v tr ca lp bn trong MapContext. Lp bn trong MapContext c lu tr bt u t v tr 0, nu lp bn cha c trong MapContext th tr v -1.

4.3.1.7 - Qun l vic hin th bn

Sau khi to tch hp cc lp bn vo trong mapContext, ta bc sang giai an hin th tt c cc lp bn ra mn hnh. lm cng vic ny ta tc ng n lp StyledMapPane, lp ny gip ta nh dng cch hin th bn tch hp.

StyledMapPane mapPane = new StyledMapPane();

mapPane.setMapContext(map);

mapPane.getRenderer().addLayer(new RenderedMapScale());

Hnh 3.17: Cng c h tr hin th bn V StyledMapPane thc cht l mt JComponent nn mun hin th ra mn hnh ta cn t StyleMapPane vo trong JFrame hoc Applet, JApplet.

C 2 cch hin th bn :

1. Hin th ti my tnh cc b:

hin th ti my tnh cc b ta c th s dng chng trnh Jbuilder chy JFrame hay Applet:

JFrame frame = new JFrame();

frame.setTitle(titleFrame);

frame.setContentPane(mapPane);

frame.setBackground(Color.white);

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

frame.setSize(640, 480);

frame.show();

2. Hin th trn nn Web:

hin th trn nn Web ta cn s dng n my o Java l phng tin h tr vic hin th.

B1: Khai bo cch c d liu t cc file .shp theo kiu c file ng gi chy trn Web ging nh hng dn c d liu t file .shp trn.

B2: To Applet hay JApplet cha StyledMapPane.

B3: ng gi trong java bng cch vo File ( New (Archive chn Basic.

B4: To file html sau t archive vo

.

4.3.2 - S dng CSDL PostGIS theo kin trc client-server4.3.2.1 - Tm quan trng ca c s d liu i vi mt h thng thng tin a l, d liu u vo c th l cc tp tin (Shapefile, ArcInfo Coverage, MapInfo Table, DXF.). Nhng vic lu gi thng tin c t chc trong h thng x l tp tin thng thng c mt s im bt li nh sau:

D tha d liu v tnh bt nht (Data redundancy and inconsistency): Do cc tp tin v cc trnh ng dng c to ra bi cc ngi lp trnh khc nhau, nn cc tp tin c nh dng khc nhau, cc chng trnh c vit trong cc ngn ng lp trnh khc nhau, cng mt thng tin c th c lu gi trong cc tp khc nhau. Tnh khng thng nht v d tha ny s lm tng chi ph truy xut v lu tr, hn na, n s dn n tnh bt nht ca d liu: cc bn sao ca cng mt d liu c th khng nht qun. Kh khn trong vic truy xut d liu: Mi trng ca h thng x l file thng thng khng cung cp cc cng c cho php truy xut thng tin mt cch hiu qu v thun li.

S c lp d liu ( Data isolation ): Cc gi tr d liu c lu tr trong c s d liu phi tho mn mt s cc rng buc v tnh nht qun ca d liu ( rng buc nht qun / consistency contraints ). Trong h thng x l tp tin thng thng, rt kh khn trong vic thay i cc chng trnh tho mn cc yu cu thay i rng buc. Vn tr nn kh khn hn khi cc rng buc lin quan n cc hng mc d liu trong cc tp tin khc nhau.

Cc vn v tnh hon tt ca qu trnh giao dch (transaction): Mt giao dch hocl c hon tt trn vn hoc khng c g c. iu ny c ngha l mt giao dch ch lm thay i cc d liu bn vng khi n hon tt ( kt thc thnh cng ); nu khng, giao dch khng li mt du vt no trn CSDL. Trong h thng x l tp tin thng thng kh m bo c tnh cht ny.

Tnh bt thng trong truy xut ng thi: Mt h thng cho php nhiu ngi s dng cp nht d liu ng thi, c th dn n kt qu l d liu khng nht qun. iu ny i hi mt s gim st, qun l cht ch. H thng x l tp tin thng thng khng cung cp chc nng ny.

Vn an ton ( Security problems ): mt ngi s dng h c s d liu khng cn thit v cng khng c quyn truy xut tt c cc d liu. Vn d ny i hi h thng phi m bo c tnh phn quyn, chng truy xut tri php ...

T cc bt li nu trn nn chng ta cn thit phi cn c mt h qun tr CSDL gip qun l d liu mt cch an ton v hiu quNhim v quan trng nht ca mt h thng tin a l l qun l v khai thc cc d liu a l. Chnh v vy, mt h c s d liu cho php truy xut web cng vi kh nng lu tr v x l cc d liu a l s lun l thnh phn ct li ca bt k mt h thng thng tin a l no trn nn web. Mt trong cc h c s d liu m ngun m i u trong lnh vc ny l PostGIS (http://postgis.refractions.net) - thnh phn m rng ca h c s d liu m ngun m ni ting PostgreSQL (http://www.postgresql.org). Vi PostGIS, PostgreSQL c kh nng lu gi cc d liu a l nh im, ng, a gic v.v v h tr mt s thao tc c bn trn cc d liu ny nh xc nh im trong a gic hoc ng vin chung ca mt s khu vc. T thc t , chng ti quyt nh s dng PostgreSQL pht trin ng dng ca mnh. 4.3.2.2 - PostgreSQL

Khi qutPostgreSQL l mt h qun tr c s d liu i tng quan h da trn POSTGRES, phin bn 4.2, pht trin bi khoa in ton ca i hc Berkeley California. POSTGRES m ng cho nhiu khi nim quan trng m cc h qun tr d liu thng mi rt lu sau mi c.

PostgreSQL l mt chng trnh m ngun m xy dng trn m ngun ban u ca i hc Berkeley. N theo chun SQL99 v c nhiu c im hin i:

Cu truy vn phc tp (complex query) Kha ngoi (foreign key) Th tc s kin (trigger) Cc khung nhn (view) Tnh ton vn ca cc giao dch (integrity transactions) Vic kim tra ng thi a phin bn (multiversion concurrency control)

Mt s u im ca PostgreSQL m ta c th k n nh: Hot ng c trn nhiu h iu hnh nh: Windows, Mac OSX, Linux, BSD, Unix H tr cc th tc lu tr a ngn ng nh SQL, PL/pgsql, PL/Java, C/C++ C s thng nht gia nhng ngi pht trin (ti dng nhng k nng v cc th vin c)

To index gip qu trnh truy vn t hiu qu cao hn H tr GiST index: L cy tm kim tng qut ha c th gn cc index vo gip qu trnh tm kim c thc hin trn phm vi rng hn nh ch mc mng (intarray), ch mc khng gian (PostGIS), ch mc vn bn (tsearch2/OpenFTS) C th to mi kiu d liu, hm, procedure

PostgreSQL c ph bin vi giy php BSD c in. N khng quy nh nhng hn ch trong vic s dng m ngun ca phn mm. Bi vy PostgreSQL c th c dng, sa i v ph bin bi mi ngi cho bt k mc ch no- Cu trc PostgreSQL vi nhng ng dng pha client

PostgreSQL c hin thc nh mt h thng client server

Hnh 3.18: Cu trc PostgreSQL vi nhng ng dng pha client

- Cch ci tXin xem phn ph lc 5.2.14.3.2.3 - PostGIS

Gii thiuPostGIS l 1 phn m rng ca h qun tr CSDL hng i tng PostgreSQL c cung cp min ph cho php cc i tng GIS c lu tr trong CSDL. PostGIS bao gm h tr cho nhng ch mc (index) khng gian GiST-based R-Tree cng nh cc chc nng phn tch v x l cc i tng GIS

PostgreSQL cng vi PostGIS & GEOS cho php lu gi v truy vn cc dng hnh hc nh im, ng hoc vng trong CSDL.

PostGIS l mt d n m ngun m v CSDL khng gian ang c nghin cu v pht trin bi Refractions Research. Chng ta t k hoch h tr v pht trin PostGIS h tr 1 dy chc nng GIS quan trng, bao gm h tr OpenGIS y , nhng xy dng mang tnh topology cp cao ( che ph, b mt, mng li), cc cng c giao din cho ngi dng xem, chnh sa d liu GIS, v cc cng c truy xut web c bn

V tr PostGIS trong PostgreSQL

Hnh 3.19: V tr PostGIS trong PostgreSQL

u im

PostGIS - mt CSDL khng gian c nhng thun li khc so vi cc tp tin v hnh dng. Thun li chnh l kh nng thc hin nhng s tnh ton khng gian phc tp chng hn nh tr v nhng i tng gn mt v tr no , nhng i tng nm trong phm vi vng ph cn ca mt i tng khc, khu vc ca mt vng c bit l g, phm vi ca mt vng ni m c mt hot ng no ang xy ra l g, nhng i tng no nm bn trong mt i tng khc.

PostGIS c kh nng thao tc d liu cng tt nh l kh nng lu tr. N cung cp nhng kh nng ging mt h thng thng tin a l bn trong mt mi trng c s d liu. Nhng hm SQL bao gm buffer, intersection, within, distanceNhng hm ny ly d liu hnh hc t cc ct trong bng PostGIS v tr v nhng hnh hc mi hoc nhng thng tin khc. V d nh hm distance s tnh ton khong cch gia cc feature khng gian, v hm s tr v mt hnh mi l mt a gic c lm vng m ti mt khong cch no t feature ngun.

V s d dng hn khi kt ni d liu khng gian vi d liu phi khng gian trong mt mi trng d liu khng gian v cung cp y sc mnh ca ngn ng truy vn cu trc (SQL) thc hin nhng phn tch khc chng hn nh Chi ph trung bnh cho mt vng a l c th l g ?, ...

PostGIS cn h tr thm GiST-based R-Tree spatial indexes, y l im ring bit nht ca PostGIS so vi cc h qun tr CSDL khc.

- Mt s i tng khng gian theo chun OGC

PostGIS h tr hu ht cc i tng v cc hm c nh ngha chi tit trong OGC "Simple Features for SQL" specification. PostGIS m rng chun vi s h tr cho cc ta dng 3DZ,3DM v 4D.

OpenGIS specification nh ngha 2 chun din t cc i tng khng gian: Well-known Text (WKT) v Well-Known Binary (WKB). C Well-known Text v Well-Known Binary u bao gm thng tin v kiu ca i tng v ta ca n.

Mt s v d din t cc i tng khng gian ca WKT nh sau: POINT (2572292.2 5631150.7)

LINESTRING (2566006.4 5633207.9, 2566028.6 5633215.1, 2566062.3 5633227.1)

MULTILINESTRING((2566006.4 5633207.9, 2566028.6 5633215.1), (2566062.3 5633227.1, 2566083 5633234.8))

POLYGON (2568262.1 5635344.1, 2568298.5 5635387.6, 2568261.04 5635276.15, 2568262.1 5635344.1);

MULTIPOLYGON (((2568262.1 5635344.1, 2568298.5 5635387.6, 2568261.04 5635276.15, 2568262.1 5635344.1), (2568194.2 5635136.4, 2568199.6 5635264.2, 2568200.8 5635134.7, 2568194.2 5635136.4 )))

- S qun l d liu khng gian

PostGIS c hin thc theo bn c t OGC Simple Feature Specifications cho chun SQL.

Bn c t ny nh ngha nhng thut ton v lc SQL thm (insert), truy vn (query), thao tc (manipulate) v xa (delete) nhng i tng khng gian.

Nhng ta ca cc i tng khng gian c lu tr trong cc bng Feature.

Mi mt bng Feature c th cha mt kiu i tng geometry l im (point, multipoint), ng (linestring, multilinestring), a gic (polygon, multipolygon v geometry collection).

Nhng ta ca mi i tng c lu tr trong mt trng ca mt kiu ring bit

Kiu ca trng cho mt tp hp ta l WKT (Well Known Text). Khi nhng i tng geometry c insert vo c s d liu, PostGIS s chuyn chng t WKT sang WKB (Well Known Binary) vic lu tr c tt hn.Siu d liu t mi bng Feature c tp hp li v lu tr trong bng geometry_columns t chc kiu v h thng ta ca dng geometry c cha trong . - Cc bng siu d liu

PostGIS c hai bng siu d liu (meta-data) l SPATIAL_REF_SYS v GEOMETRY_COLUMNS.

1) Bng SPATIAL_REF_SYS Bng lu tr nhng nh danh (ID) v m t v cc h thng ta c dng trong CSDL khng gian

Cch to bng:

CREATE TABLE SPATIAL_REF_SYS

(

SRID INTEGER NOT NULL PRIMARY KEY,

AUTH_NAME VARCHAR(256),

AUTH_SRID INTEGER,

SRTEXT VARCHAR(2048),

PROJ4TEXT VARCHAR(2048)

)Vi

SRID: gi tr s nguyn th hin nh danh (ID) ca h thng tham kho a l (Spatial Referencing System SRS ) trong CSDL

AUTH_NAME: tn ca chun hoc phn chnh ca cc chun c trch dn cho h thng tham kho ny.

AUTH_SRID: nh danh ca h thng tham kho a l c nh ngha bi trch dn c uy tn trong AUTH_NAME

SRTEXT : s m t Well-Known Text ca h thng tham kho a l

PROJ4TEXT : PostGIS dng th vin Proj4 cung cp nhng kh nng bin i ta . Ct PROJ4TEXT cha chui nh ngha ta Proj4 cho mt SRID c th

Tt c s nh ngha SRTEXT v PROJ4TEXT ca cc php chiu EPSG u c cung cp trong tp tin spatial_ref_sys.sql.

2) Bng GEOMETRY_COLUMNS Lu tr siu d liu t mi bng Feature qun l kiu v h thng ta ca dng geometry c cha trong

Cch to bng:

CREATE TABLE GEOMETRY_COLUMNS

(

F_TABLE_CATALOG VARCHAR(256) NOT NULL,

F_TABLE_SCHEMA VARCHAR(256) NOT NULL,

F_TABLE_NAME VARCHAR(256) NOT NULL,

F_GEOMETRY_COLUMN VARCHAR(256) NOT NULL,

COORD_DIMENSION INTEGER NOT NULL,

SRID INTEGER NOT NULL,

TYPE VARCHAR(30) NOT NULL

) Vi F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME: Tn y ca bng feature cha cc ct hnh hc. Trong PostgreSQL, phn "catalog" c b trng, schema l tn ca PostgreSQL schema vi mc nh l public.

F_GEOMETRY_COLUMN: tn ca ct geometry trong bng feature

COORD_DIMENSION: ct quy nh s chiu khng gian (2, 3 hoc 4 chiu)

SRID: ID ca h thng tham kho khng gian dng cho ta hnh hc trong bng. y chnh l kha ngoi tham kho n bng SPATIAL_REF_SYS TYPE: kiu ca mt i tng khng gian. gii hn ct d liu khng gian thnh mt kiu c th, ta dng POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION hoc da theo phin bn XYM l POINTM, LINESTRINGM, POLYGONM, MULTIPOINTM, MULTILINESTRINGM, MULTIPOLYGONM, GEOMETRYCOLLECTIONM. Nu cn th hin mt tp hp khng ng nht, ta dng "GEOMETRY" th hin kiu- Cch ci tXin xem phn ph lc 5.2.2 - Cch to mt c s d liu khng gian1) Khi ng v kt ni vo PostgreSQL, ta thy giao din sau:

Hnh 3.20: Giao din PostgreSQL2) To mt CSDL mi:

Hnh 3.21: To c s d liu trong PostgreSQL

Name: tn c s d liu khng gian cn to

Owner: Ngi qun l c s d liu ny

Template: postgis nu cn to c s d liu khng gian

3) C s d liu mi c to nh sau:

Hnh 3.22: V tr cc bng siu d liu trong PostGIS

Lu : i vi c s d liu khng gian theo postgis template, sau khi to, trong phn Tables s c hai bng siu d liu l geometry_columns v spatial_ref_sys.

4) Dng cc cu lnh SQL to cc bng Feature cng nh d liu cho cc bng ny. Cc bc thc hin nh sau:

To bng d liu khng gian:

To mt bng d liu phi khng gian

V d :

To bng rghc (Ranh gii hnh chnh) c cc ct MA_XA kiu int, ct TEN_XA kiu varchar v ct Vung kiu int:

create table rghc (MA_XA int8, TEN_XA varchar(25), Vung int4) Thm ct d liu khng gian vo bng va to bng hm AddGeometryColumn vi c php nh sau:

AddGeometryColumn(,,, ,)Trong :

: tn bng Feature

: tn ct d liu khng gian

: nh danh (ID) ca h thng tham kho a l (Spatial Referencing System SRS ) trong c s d liu, l mt trong cc gi tr ca bng spatial_ref_sys.

Lu : Gi tr ct c th khng c xc nh, khi cn nhp gi tr srid = -1. V vi gi tr ny ta khng th dng cc hm dnh cho c s d liu khng gian trong PostGIS.

: kiu ca i tng geometry theo chun OGC.: s chiu V d : To ct the_geom vi i tng geometry kiu MULTIPOLYGON vo bng rghc:

select AddGeometryColumn

('rghc','the_geom','3149','MULTIPOLYGON',2)Khi hm AddGeometryColumn c thc hin, th PostGIS thc hin ng thi hai cng vic:

Thm ct the_geom vo bng rghc

Thm dng thng tin v cc gi tr c lin quan vo bng geometry_columns To cc rng buc

V d: To kha chnh cho ct