2010-08-04 3 views
3

У меня есть типичная база данных с миллионами полигонов в качестве земельных участков, и я хочу разделить эти полигоны на линии, а затем удалить линии, которые пересекаются друг с другом. Эти линии будут использоваться исключительно для рендеринга в mapnik/и/или geoserver, так как на данный момент каждая граница посылки получается дважды.как удалить перекрывающиеся строки в postgis

Я предлагаю разделить полигоны посылок на новую таблицу («border_lines»), а затем выполнить поиск и удаление перекрывающихся линий. как я могу удалить эти перекрывающиеся строки в postgis?

+3

Это был бы хороший вопрос, заданный на сайте http://gis.stackexchange.com/GIS. – Cumbayah

ответ

1

Использование ST_Equals:
http://postgis.refractions.net/docs/ST_Equals.html

Ваш SQL заявление, вероятно, искать что-то вроде этого:

SELECT y.id, z.id 
FROM mytable y, mytable z 
WHERE ST_Equals(y.the_geom,z.the_geom) 

Запрос будет длиться вечно, чтобы бежать, но, надеюсь, вы должны сделать это только один раз. После запуска, возьмите результаты и тщательно удалите дубликаты идентификаторов.

Обратите внимание, что это не избавит от границ, которые не совпадают точно.

Смежные вопросы