2011. február 12., szombat

Az ST_Intersects és az St_Buffer használata egy munkapéldán

Körülbelül 3 hónapja poligonizáltuk az Ékövizig területére eső, a nagyvizi medert érintő települések külterületi dxf állományait. Így létrejött egy körülbelül 100 ezer rekordot tartalmazó állomány, ami akkor kiválóan használható volt tematikus térképek készítésére. Mivel a shape adattáblájában megvannak a tulajdonosi adatok is, így a shape a terepen is használható lehetne, ha nem lenne ilyen nagy,
ezért azt a feladatot kaptam, hogy folyónként szedjem szét az állományt, hogy a Juno SB+ArcPad rendszeren is használható legyen

1) Bodrog folyó leválogatása
2) Bodrog folyó 1 km-es pufferzónája
3) Bodrog folyó 1km-es pufferzónája által érintett települések
4) Bodrog 1 km-es pufferzónájába eső települések külterületi poligon állománya


1) Bodrog folyó leválogatása

SELECT * FROM vizrajz WHERE vizf_nev='Bodrog';


2) Bodrog folyó 1 km-es pufferzónája

SELECT ST_Buffer(the_geom,1000),gid,vizf_nev FROM vizrajz WHERE vizf_nev='Bodrog';

3) Bodrog folyó 1km-es pufferzónája által érintett települések

CREATE TABLE szelektalt_telepulesek AS
SELECT t.the_geom,t.nev,t.gid
    FROM telepules as t,(SELECT ST_Buffer(the_geom,1000) as the_geom,gid,vizf_nev FROM vizrajz WHERE vizf_nev='Bodrog') as b
    WHERE ST_Intersects(b.the_geom,t.the_geom)='t';


4) Bodrog 1 km-es pufferzónájába eső települések külterületi poligon állománya

CREATE TABLE tisza_kuvet AS SELECT k.* FROM kuvet_nagyvizi_mederbe_eso as k, (SELECT t.the_geom,t.nev,t.gid FROM telepules as t,(SELECT ST_Buffer(the_geom,1000) as the_geom,gid,vizf_nev FROM vizrajz WHERE vizf_nev='Tisza') as b WHERE ST_Intersects(b.the_geom,t.the_geom)='t') as m WHERE ST_Intersects(k.the_geom,m.the_geom);

Az eredmény:

Nincsenek megjegyzések:

Megjegyzés küldése