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

Ответить
kalenkov
Гуру
Сообщения: 567
Зарегистрирован: 30 апр 2013, 09:33
Репутация: 34

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

Сообщение kalenkov » 28 янв 2016, 12:29

Научите, как находить область пересечения полигонов и их разность. С областью пересечения я вроде разобрался. Есть два файла 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?

trir
Гуру
Сообщения: 5313
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1017
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 28 янв 2016, 13:20


kalenkov
Гуру
Сообщения: 567
Зарегистрирован: 30 апр 2013, 09:33
Репутация: 34

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

Сообщение kalenkov » 28 янв 2016, 13:46

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

kalenkov
Гуру
Сообщения: 567
Зарегистрирован: 30 апр 2013, 09:33
Репутация: 34

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

Сообщение kalenkov » 28 янв 2016, 14:23

Заработало!

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

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

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость