У меня есть база данных postgis, импортированная с помощью osm2pgsql. Очевидно, есть много неправильных геометрий, что приводит к ошибкам с некоторыми пространственными операциями.
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)
);
Но этот запрос, по-видимому, применяет операцию буфера ко всем записям в таблице. Как бы вы ограничили эту операцию только недействительными геометриями?
Заранее спасибо!