PostGIS Topology: Porovnání verzí
mBez shrnutí editace |
|||
Řádek 11: | Řádek 11: | ||
<source lang=sql> | <source lang=sql> | ||
CREATE SCHEMA my_schema; | CREATE SCHEMA my_schema; | ||
SET search_path TO my_schema,public,topology; | SET search_path TO my_schema,public,topology,gis1; | ||
</source> | </source> | ||
Verze z 9. 4. 2012, 22:09
PostGIS Topology je rozšíření pro PostGIS umožňující topologickou správu vektorových dat v prostředí PostGIS/PostgreSQL.
Více přednášky Úvod do zpracování prostorových dat.
Příklad
Data z cvičné databáze pgis_student.
CREATE SCHEMA my_schema;
SET search_path TO my_schema,public,topology,gis1;
Feature table 'kraje'
CREATE TABLE kraje AS SELECT nuts3, st_multi(st_union(geom)) as geom FROM gis1.obce GROUP BY nuts3;
SELECT nuts3,st_geometrytype(geom) AS type, ROUND(st_area(geom)/1e6) AS area from kraje;
nuts3 | type | area -------+-----------------+------- CZ042 | ST_MultiPolygon | 5341 CZ081 | ST_MultiPolygon | 5566 CZ053 | ST_MultiPolygon | 4523 CZ032 | ST_MultiPolygon | 7566 CZ041 | ST_MultiPolygon | 3317 CZ071 | ST_MultiPolygon | 5141 CZ061 | ST_MultiPolygon | 6924 CZ051 | ST_MultiPolygon | 3163 CZ062 | ST_MultiPolygon | 7065 CZ021 | ST_MultiPolygon | 11013 CZ072 | ST_MultiPolygon | 3961 CZ031 | ST_MultiPolygon | 10071 CZ052 | ST_MultiPolygon | 4767 CZ011 | ST_MultiPolygon | 496 (14 rows)
Vytvoření topologického schématu 'kraje'
SELECT topology.createtopology('kraje', 2065, 1);
Argumenty:
- 2065 (EPSG)
- 1 (přesnost v mapových jednotkách, tj. v tomto případě v metrech)
SELECT * from topology.topology;
id | name | srid | precision | hasz ----+-----------+------+-----------+------ 1 | kraje | 2065 | 1 | f
\dt kraje.
List of relations Schema | Name | Type | Owner --------+-----------+-------+--------- kraje | edge_data | table | postgis kraje | face | table | postgis kraje | node | table | postgis kraje | relation | table | postgis
Přidání atributu topologie do feature table
select topology.AddTopoGeometryColumn('kraje', 'my_schema', 'kraje', 'topo', 'MULTIPOLYGON');
SELECT * FROM topology.layer;
topology_id | layer_id | schema_name | table_name | feature_column | feature_type | level | child_id -------------+----------+-------------+------------+----------------+--------------+-------+---------- 1 | 1 | my_schema | kraje | topo | 3 | 0 |
Poznámka: feature_type '3' odpovídá 'face' (1 - node, 2 - edge).
Sestavení topologie (Geometry → TopoGeometry)
SELECT nuts3, topology.toTopoGeom(geom, 'kraje', 1) FROM kraje;