хорошие методы для логических операций над перекрывающимися полигонами

Какая библиотека с открытым исходным кодом лучше всего подходит для выполнения логических операций (объединение, пересечение, вычитание) с векторной геометрией (многоугольники и полилинии), такой как тип, хранящийся в шейп-файлах? Что вам нравится использовать?

Похоже, что у OGR есть такая возможность, хотя у меня возникли проблемы с поиском конкретных команд в их документации. Shapely определенно делает это, и его легко понять. У PostGIS также есть некоторые команды для этого.

Но их должно быть больше, и мне трудно их найти.

У меня нет большого опыта работы с какой-либо из вышеперечисленных библиотек, и я был бы признателен за любые мнения об этих или других библиотеках.

Спасибо!


person BenjaminGolder    schedule 24.12.2010    source источник
comment
PostGis (пространственные расширения для базы данных PostgreSql), GDAL/OGR — чтение и запись векторных и растровых форматов, GEOS (Shapely — это просто оболочка над GEOS iirc, раньше были оболочки python OGR/GDAL) — все очень хорошие библиотеки с открытым исходным кодом для работы с геопространственными данными (я могу полностью порекомендовать их все). Кстати: PostgreSQL также использует GEOS, GDAL, Proj4 и т. д. В геопространственном открытом исходном коде вы увидите множество библиотек, используемых во многих местах (например, Mapserver, Geoserver, ...)   -  person ChristopheD    schedule 14.01.2011
comment
Также: хорошее место, чтобы задать этот тип вопроса, — gis.stackexchange.com.   -  person ChristopheD    schedule 14.01.2011


Ответы (2)


Я не думаю, что OGR может помочь вам сделать это, хотя вроде как мог бы, если бы ваши данные находились в пространственной базе данных, которая поддерживала бы эти операции через SQL - вы могли бы передать запрос на манипулирование геометрией, и OGR получил бы результат из БД обычным способом.

Проверьте библиотеку GEOS, я уверен, что она может это сделать, но я не использовал ее, поэтому не могу ответить дальше http://trac.osgeo.org/geos/

person mdsumner    schedule 25.12.2010

Небольшая поправка: Shapely работает не с шейп-файлами, а с отдельными или составными геометрическими объектами. В сочетании со средством чтения/записи шейп-файлов его можно использовать в программе, выполняющей бинарные операции с файлами (например, у меня есть служба, которая пространственно сравнивает фиды GeoRSS по адресу http://sgillies.net/mush.html), но, как и вы, я не видел ничего подобного за пределами проприетарного программного обеспечения. как Аркмап.

person sgillies    schedule 04.01.2011
comment
спасибо, исправление учтено и внесено. и спасибо за Shapely! какие-либо рекомендации по чтению / записи шейп-файлов для использования с shapely? Я начал делать программу для чтения шейп-файлов (github.com/bengolder/pyshapefile), но еще не сделал ее более удобной, и кто-то, вероятно, уже сделал ее лучше. Этот сервис georss действительно опрятный. - person BenjaminGolder; 05.01.2011