PostGIS Topology: Porovnání verzí
Bez shrnutí editace |
|||
Řádek 7: | Řádek 7: | ||
== Příklad == | == Příklad == | ||
=== Feature table "urbanarea === | |||
\d urbanarea | \d urbanarea | ||
Řádek 45: | Řádek 45: | ||
</pre> | </pre> | ||
=== Vytvoření topologického schématu 'urbanarea' === | |||
<source lang=sql> | <source lang=sql> | ||
Řádek 146: | Řádek 146: | ||
TABLE "urbanarea.edge_data" CONSTRAINT "right_face_exists" FOREIGN KEY (right_face) REFERENCES urbanarea.face(face_id) | TABLE "urbanarea.edge_data" CONSTRAINT "right_face_exists" FOREIGN KEY (right_face) REFERENCES urbanarea.face(face_id) | ||
</pre> | </pre> | ||
== Externí odkazy == | == Externí odkazy == | ||
Verze z 30. 3. 2011, 22:10
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
Feature table "urbanarea
\d urbanarea
Table "public.urbanarea" Column | Type | Modifiers --------------+-------------------+------------------------------------------------------------- ogc_fid | integer | not null default nextval('urbanarea_ogc_fid_seq'::regclass) wkb_geometry | geometry | cat | integer | objectid | integer | ua | character varying | name | character varying | ua_type | character varying | Indexes: "urbanarea_pk" PRIMARY KEY, btree (ogc_fid) "urbanarea_geom_idx" gist (wkb_geometry) Check constraints: "enforce_dims_wkb_geometry" CHECK (st_ndims(wkb_geometry) = 2) "enforce_geotype_wkb_geometry" CHECK (geometrytype(wkb_geometry) = 'POLYGON'::text OR wkb_geometry IS NULL) "enforce_srid_wkb_geometry" CHECK (st_srid(wkb_geometry) = 900914)
SELECT cat, ua, name, ST_GeometryType(wkb_geometry) from urbanarea limit 5;
cat | ua | name | st_geometrytype -----+-------+------------+----------------- 1 | 29305 | Farmville | ST_Polygon 2 | 92404 | Washington | ST_Polygon 3 | 35380 | Greenville | ST_Polygon 4 | 46315 | La Grange | ST_Polygon 5 | 45397 | Kinston | ST_Polygon
Vytvoření topologického schématu 'urbanarea'
SELECT topology.createtopology('urbanarea');
SELECT * from topology.topology;
id | name | srid | precision ----+-----------+------+----------- 1 | urbanarea | -1 | 0
\dt urbanarea.
List of relations Schema | Name | Type | Owner -----------+-----------+-------+-------- urbanarea | edge_data | table | martin urbanarea | face | table | martin urbanarea | node | table | martin urbanarea | relation | table | martin
\d urbanarea.node Table "urbanarea.node" Column | Type | Modifiers -----------------+----------+------------------------------------------------------------------ node_id | integer | not null default nextval('urbanarea.node_node_id_seq'::regclass) containing_face | integer | geom | geometry | Indexes: "node_primary_key" PRIMARY KEY, btree (node_id) "node_gist" gist (geom) Check constraints: "enforce_dims_geom" CHECK (st_ndims(geom) = 2) "enforce_geotype_geom" CHECK (geometrytype(geom) = 'POINT'::text OR geom IS NULL) "enforce_srid_geom" CHECK (st_srid(geom) = (-1)) Foreign-key constraints: "face_exists" FOREIGN KEY (containing_face) REFERENCES urbanarea.face(face_id) Referenced by: TABLE "urbanarea.edge_data" CONSTRAINT "end_node_exists" FOREIGN KEY (end_node) REFERENCES urbanarea.node(node_id) TABLE "urbanarea.edge_data" CONSTRAINT "start_node_exists" FOREIGN KEY (start_node) REFERENCES urbanarea.node(node_id) \d urbanarea.edge_data Table "urbanarea.edge_data" Column | Type | Modifiers ---------------------+----------+----------------------------------------------------------------------- edge_id | integer | not null default nextval('urbanarea.edge_data_edge_id_seq'::regclass) start_node | integer | not null end_node | integer | not null next_left_edge | integer | not null abs_next_left_edge | integer | not null next_right_edge | integer | not null abs_next_right_edge | integer | not null left_face | integer | not null right_face | integer | not null geom | geometry | Indexes: "edge_data_pkey" PRIMARY KEY, btree (edge_id) "edge_gist" gist (geom) "edge_left_face_idx" btree (left_face) "edge_right_face_idx" btree (right_face) Check constraints: "enforce_dims_geom" CHECK (st_ndims(geom) = 2) "enforce_geotype_geom" CHECK (geometrytype(geom) = 'LINESTRING'::text OR geom IS NULL) "enforce_srid_geom" CHECK (st_srid(geom) = (-1)) Foreign-key constraints: "end_node_exists" FOREIGN KEY (end_node) REFERENCES urbanarea.node(node_id) "left_face_exists" FOREIGN KEY (left_face) REFERENCES urbanarea.face(face_id) "next_left_edge_exists" FOREIGN KEY (abs_next_left_edge) REFERENCES urbanarea.edge_data(edge_id) DEFERRABLE INITIALLY DEFERRED "next_right_edge_exists" FOREIGN KEY (abs_next_right_edge) REFERENCES urbanarea.edge_data(edge_id) DEFERRABLE INITIALLY DEFERRED "right_face_exists" FOREIGN KEY (right_face) REFERENCES urbanarea.face(face_id) "start_node_exists" FOREIGN KEY (start_node) REFERENCES urbanarea.node(node_id) Referenced by: TABLE "urbanarea.edge_data" CONSTRAINT "next_left_edge_exists" FOREIGN KEY (abs_next_left_edge) REFERENCES urbanarea.edge_data(edge_id) DEFERRABLE INITIALLY DEFERRED TABLE "urbanarea.edge_data" CONSTRAINT "next_right_edge_exists" FOREIGN KEY (abs_next_right_edge) REFERENCES urbanarea.edge_data(edge_id) DEFERRABLE INITIALLY DEFERRED \d urbanarea.face Table "urbanarea.face" Column | Type | Modifiers ---------+----------+------------------------------------------------------------------ face_id | integer | not null default nextval('urbanarea.face_face_id_seq'::regclass) mbr | geometry | Indexes: "face_primary_key" PRIMARY KEY, btree (face_id) "face_gist" gist (mbr) Check constraints: "enforce_dims_mbr" CHECK (st_ndims(mbr) = 2) "enforce_geotype_mbr" CHECK (geometrytype(mbr) = 'POLYGON'::text OR mbr IS NULL) "enforce_srid_mbr" CHECK (st_srid(mbr) = (-1)) Referenced by: TABLE "urbanarea.node" CONSTRAINT "face_exists" FOREIGN KEY (containing_face) REFERENCES urbanarea.face(face_id) TABLE "urbanarea.edge_data" CONSTRAINT "left_face_exists" FOREIGN KEY (left_face) REFERENCES urbanarea.face(face_id) TABLE "urbanarea.edge_data" CONSTRAINT "right_face_exists" FOREIGN KEY (right_face) REFERENCES urbanarea.face(face_id)