Hay dos mesas con entidades de polígono en mi base de datos PostgreSQL. Quiero crear linestring características donde están los límites de los polígonos no se intersectan.
CREATE TABLE schema.poly_a
(
gid SERIAL NOT NULL,
geom geometry(polygon, SRID),
CONSTRAINT poly_a_pkey PRIMARY KEY (gid)
);
CREATE TABLE schema.poly_b
(
gid SERIAL NOT NULL,
geom geometry(polygon, SRID),
CONSTRAINT poly_b_pkey PRIMARY KEY (gid)
);
He probado el siguiente SQL, pero no está funcionando. No hay características en la vista.
CREATE VIEW line_difference AS
SELECT
row_number() over() AS gid,
g.*
FROM
(SELECT
ST_Difference(ST_Exteriorring(poly_b.geom), poly_a.geom)::geometry(linestring, SRID) AS geom
FROM schema.poly_a, schema.poly_b)
AS g;
Una geometría de la colección en lugar de linestrings también hará el trabajo.
EDITAR:
He probado la consulta SQL postet por el frío. Desafortunadamente no es posible cargar la capa en QGIS ('no Hay ninguna entrada en geometry_columns!'). Gestor de bases de datos dice que hay dos linestrings, uno multilinestring y uno de geometrycollection. La vista previa en el Gestor de bases de datos no está disponible.