PostGIS Topology

Z GeoWikiCZ

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('tm50_cr', 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 | tm50_cr   | 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;

Externí odkazy