PostGIS Topology: Porovnání verzí
Řádek 17: | Řádek 17: | ||
<source lang=sql> | <source lang=sql> | ||
CREATE TABLE | CREATE TABLE tm50_cr AS SELECT DISTINCT k.ogc_fid,k.tm50,k.geom FROM kltm50 AS k JOIN obce AS o ON ST_Overlaps(k.geom, o.geom); | ||
SELECT COUNT(*) FROM tm50_cr; | |||
</source> | </source> | ||
<pre> | <pre> | ||
count | |||
------- | ------- | ||
289 | |||
(1 row) | |||
( | |||
</pre> | </pre> | ||
Verze z 9. 4. 2012, 22:12
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 tm50_cr AS SELECT DISTINCT k.ogc_fid,k.tm50,k.geom FROM kltm50 AS k JOIN obce AS o ON ST_Overlaps(k.geom, o.geom);
SELECT COUNT(*) FROM tm50_cr;
count ------- 289 (1 row)
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;