![](/img/trans.png)
[英]Get exterior ring of geometries, and put it in geojson object - Postgis - SQL
[英]PostGIS SQL query and invalid geometries
我有一个用 osm2pgsql 导入的 postgis 数据库。 显然有很多无效的几何图形会导致一些空间操作出现错误。
geometry.buffer(x) 似乎解决了这个问题,但是这个操作需要很多时间。 因此,我只想将其应用于无效的几何图形:
select * from
(
select *
from polygons
WHERE NOT IsValid(polygons.geom)
) as tbl
where ST_Intersects(
ST_Buffer(tbl.geom, 0.001),
GeomFromText('POLYGON ((XY))', 4326)
);
但是这个查询似乎将缓冲区操作应用于表中的所有条目。 您如何将此操作限制为仅对无效几何图形?
先感谢您!
PostgreSQL
优化器在优化之前扩展内联视图,因此不能保证谓词不会被推入或推出视图。
另一方面, CTE
总是物化的,所以这个查询:
WITH tbl AS
(
SELECT *
FROM polygons
WHERE NOT IsValid(polygons.geom)
)
SELECT *
FROM tbl
WHERE ST_Intersects
(
ST_Buffer(tbl.geom, 0.001),
GeomFromText('POLYGON ((XY))', 4326)
);
只会将ST_buffer
应用于无效的几何图形。
但是,这对我来说似乎不是一个正确的解决方案。 能否提供进口产生的“无效几何”样本?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.