Страница 1 из 1

ogr2ogr пересечение, разность полигонов

Добавлено: 28 янв 2016, 12:29
kalenkov
Научите, как находить область пересечения полигонов и их разность. С областью пересечения я вроде разобрался. Есть два файла file1.shp и file2.shp с одним полигоном в каждом из них. Тогда команда

Код: Выделить всё

ogr2ogr -dialect SQLITE -sql "SELECT ST_Intersection(A.geometry, B.geometry) AS geometry, A.*, B.* FROM file1 A, file2 B WHERE ST_Intersects(A.geometry, B.geometry)" . . -nln output
создает файл output.shp с полигоном, совпадающим с областью пересечения полигонов из файлов file1.shp и file2.shp. А как находить разность полигонов? Нужно найти область полигона из file1.shp, которая не содержится в полигоне из file2.shp. Что нужно для этого скормить команде ogr2ogr?

Re: ogr2ogr пересечение, разность полигонов

Добавлено: 28 янв 2016, 13:20
trir

Re: ogr2ogr пересечение, разность полигонов

Добавлено: 28 янв 2016, 13:46
kalenkov
Спасибо за наводку. А можно разжевать для тупых? Честно говоря, я во всём этом слабо разбираюсь. Какая итоговая команда должна быть?

Re: ogr2ogr пересечение, разность полигонов

Добавлено: 28 янв 2016, 14:23
kalenkov
Заработало!

Код: Выделить всё

ogr2ogr -dialect SQLITE -sql "SELECT ST_Difference(A.geometry, B.geometry) AS geometry FROM file1 A, file2 B WHERE A.geometry != B.geometry" . . -nln output