Professional Documents
Culture Documents
Bao Cao Postgis
Bao Cao Postgis
Bao Cao Postgis
KHI NIM V CI T
PostGIS l mt c s d liu c bit m rng ca PostgreSQL. N h tr tt c
cc function v cc object nh ngha trong OpenGIS Simple Feature For SQL. Ging
nh Oracle, DB2 v SQL server, PostGIS c kh nng to mt c s d liu quan h.
PostGIS c th i li tn nh PostgreSQL Spatial. N c n rng hn vi nhng
kh nng:
M rng lu tr kiu d liu hnh hc cho cc kiu d liu thng dng ( varchar,
char, integer, date).
Thm vo cc functions cho kiu hnh hc (geometry) v cung cp cc thng tin hu
ch .
ST_Distance(geometry,geometry), ST_Area(geometry), ST_Length(geometry),
ST_Intersects(geometry, geometry
C ch nh ch s cho cc cu truy vn vi khng gian gii hn, tr v cc record
nhanh chng t cc bng d liu khng l.
Nhng chc nng c bn ca c s d liu khng gian d dng c lit k nh:
kiu, hm, ch mc. iu quan trng nht l khi lng ca vic x l khng gian bn
trong c s d liu khi nhng kh nng c gii thiu: chiu li (re_projection),
nhng phn tch ln t bn d liu, tm kim xp x, lc thuc tnh, v nhiu hn na.
-
Click next
Sau click NO
3. Ci t PostGIS
Double-click the postgis-pg82-setup-1.3.1.exe file
Chn th mc ci t
Chp nhn cc gi tr mc nh
Click instanll hon tt vic ci t
4. Cch s dng
iu hng cho PostgreSQL v chy PgAdmin III.
Double click trn PostgreeSQL Database Server. Xc nhn li password.
10
11
12
11:15a
11:15a
278,184 bc_municipality.shp
19,687,612 bc_roads.shp
14
06/26/2007
06/26/2007
06/26/2007
06/26/2007
06/26/2007
06/26/2007
08/22/2007
06/26/2007
06/26/2007
11:15a
1,537,144 countries.shp
11:15a
10,576 bc_pubs.shp
11:15a
466,308 timezone.shp
11:15a
71,024 cities.shp
11:15a
1,332 bc_hospitals.shp
11:15a
3,662,668 newyork_census.shp
10:21a
8,359,672 bc_voting_areas.shp
11:15a
1,196,124 bc_border.shp
11:15a
1,518,248 usa_counties.shp
11 File(s)
36,788,892 bytes
0 Dir(s) 539,488,157,696 bytes free
C:\postgis-workshop\data>
C:\postgis-workshop\data>
> bc_pubs.sql
C:\postgis-workshop\data>
Password:
. . . . . .
C:\postgis-workshop\data>
C:\postgis-workshop\data>
Password:
pg_setenv.bat
shp2pgsql i D -s 3005 bc_pubs.shp bc_pubs
psql U postgres f bc_pubs.sql d postgis
pg_shpsql.bat
psql U postgres f bc_data.sql d postgis
BEGIN
INSERT 215525 1
. . . . . .
COMMIT
-s <#>
-i
-W
-a
16
II.5. nh ch s
II.5.1. To mt ch s khng gian
Ch s l phn cc k quan trng cho cc bng khng gian ln, bi v chng cho php truy
vn nhanh chng v nhn cc records chng cn. T khi PostGIS c thng xuyn s dng
cho lng ln d liu c lp, nhng lm th no xy dng v s dng ch mc nh th
no?
Ch s PostGIS c nh theo kiu R-Tree, cng c nh ch s ph bin
GiST( Generalized Search Tree).
CREATE INDEX bc_roads_gidx ON bc_roads USING GIST ( the_geom );
CREATE INDEX bc_pubs_gidx ON bc_pubs USING GIST ( the_geom );
CREATE INDEX bc_voting_areas_gidx ON bc_voting_areas USING GIST ( the_geom );
CREATE INDEX bc_municipality_gidx ON bc_municipality USING GIST ( the_geom );
CREATE INDEX bc_hospitals_gidx ON bc_hospitals USING GIST
( the_geom );
II.5.2. S dng ch s
Tt c database khng gian thc thi l hai giai on t cc x l khng gian:
Giai on 1 l to ch s hp tm kim.
Trong PostGIS giai on 1 tm kim ch s c kch hot bng cch s dng ton t
&& vi ngha chng lp ln ranh gii.
So snh cc functions PostGIS (ST_Intersects(), ST_DWithin(), ST_Contains(), etc) t ng
s dng ton t &&.
Phin bn khng ch s ca cng function th s dng tin t _ST_Intersects(),
_ST_Contains(), etc).
II.5.3. Kim tra ch s khng gian
So snh hai cc s dng sau:
u tin, thi tian truy vn non-index:
17
bn s c kt qu tt hn vi cc truy vn th hai.
II.5.4. Index v k hoch truy vn
Vi mt s lng ln d liu c lu trn cng, vic truy xut n s rt l chm chp.
iu ct li ca gii thut database l tm kim nhiu d liu nhng ch mt vi disk c tm
kim ch khng tm kim ton b. Trong PostgreSQL, bn c th c lng k hoch truy vn
cho bt k truy vn SQL no trong khong thi gian EXPLAIN trc khi truy vn. Trong
PgAdmin, bn c ci nhn trc quan thay v k hoch truy vn bi vic s dng mt truy vn
vi nt Explain
thay v nt Run
18
S dng mt index truy vn hm, ST_Crosses() gii thch th hin kt qu tr v khi chy
mt index scan trn khng gian index (bc_roads_gidx)
II.6. Ti u ha POSTGRESQL
nh dng database file trong database \data, v tn postgresql.conf .
The database configuration file is in the databases \data area, and is named
postgresql.conf. Ci t li phn cng my tnh trong
StartProgramsPostgreSQL 8.2Configuration FilesEdit postgresql.conf
Thay i theo nhng thng s sau:
shared_buffers = 256MB
19
ADVANCED POSTGIS
Tnh ton vn d liu
III.2. Overlay
Overlays l mt tiu chun cng ngh GIS cho phn tch quan h gia hai lp. c bit
thuc tnh lin kt vi nhau bi cc vng gia cc layers. Overlays l mt cng c quan trng.
Trong SQL mt overlay phi kt khng gian vi ng giao thao tc. Cho mi a gic
trong bng A, tm tt c cc a gic trong bng B c tng tc vi A. Phn ct A bng B v
copy kt qu vo mt bng mi. Vi thuc tnh chung ca c A v B, v vng gc ca A v B.
Thuc tnh c th tng hp hot ng c th c gn vo trng thi SQL.
VD:
CREATE TABLE pg_voting_areas AS
SELECT
ST_Intersection(v.the_geom, m.the_geom) AS intersection_geom,
ST_Area(v.the_geom) AS va_area,
v.*,
m.name
FROM
bc_voting_areas v,
bc_municipality m
WHERE
20
IV.
Mapserver c th c d liu khng gian trc tip ca Postgis databases. Cung cp cch
thc nhanh chng d dng a d liu database ln internet khng nht thit theo mt cch
duy nht mt quy trnh dumping d liu.
IV.1. nh dng Mapserves
Hu ht nh dng ca MapServer s dng PostGIS n gin tham chiu mt bng khng
gian v ch ra ct cha thng tin khng gian trong map. Tt c nh dng khc l tiu chun
MapServer c php file map:
LAYER
CONNECTIONTYPE postgis
NAME "bc_roads"
CONNECTION "user=postgres password=postgres dbname=postgis host=localhost"
DATA "the_geom FROM bc_roads"
STATUS ON
TYPE LINE
CLASS
COLOR 200 0 0
END
END
21
IV.1.1.Gi MS4W
y l phin bn Mapserver dnh cho window. Vi MS4W vic ci t v thit lp trn
mi trng window rt n gin. Mc ch ca gi ny l cho php tt c nhng ngi s
dng mi cp ci t mi trng pht trin Mapserver d dng v nhanh chng. N cng
l mi trng cho vic ng gi v phn phi ng dng mapserver.
MS4W ph hp a dng nhu cu bng cch h tr
Nhng ngi pht trin mun thit lp 1 mi trng pht trin n nh nhanh.
Nhng ngi hun luyn cn ci t 1 cu hnh ging nhau trn nhiu my.
MapServer Utilities
PROJ Utilities
Shapelib Utilities
Shp2tile Utility
22
Shpdiff Utility
AVCE00 Utilities
OWTChart 1.2.0
DEMtools Utilities
24