Является ли Boost.Geometry достаточно зрелым?

Недавно меня наняла ГИС-компания, чтобы я переписал их старые геоматические библиотеки. Поэтому я сейчас ищу хорошую библиотеку вычислительной геометрии. Я видел CGAL, это потрясающе, но мой босс хочет что-то бесплатное.

Итак, я сейчас проверяю Boost.Geometry. Эта библиотека кажется отличной, но также кажется, что она довольно быстро меняется. Многое еще не реализовано, и многие вопросы обсуждаются в рассылке.

Отсюда мой вопрос: является ли Boost.Geometry достаточно зрелым, чтобы я мог что-то на нем построить? Или дизайн еще будет развиваться?

Спасибо


person undu    schedule 27.03.2012    source источник
comment
Я думаю, что дизайн довольно стабилен, когда библиотека принимается в Boost. разве это не правда?   -  person CapelliC    schedule 27.03.2012
comment
@chac Да, можно так подумать. Но из того, что я видел, похоже, что авторы этой библиотеки думают, что все могло бы быть лучше. По крайней мере я так понимаю, может я ошибаюсь. Вот почему я задаю этот вопрос.   -  person undu    schedule 27.03.2012
comment
В free вы имеете в виду free as in beer? CGAL — это GPL, поэтому очень free as in freedom ;)   -  person pmr    schedule 29.03.2012
comment
@pmr Я видел лицензию GPL, но для использования в промышленных исследованиях вы должны платить коммерческую лицензию в размере 5000 евро (6635 долларов США) в год. И это не бесплатно :p (Я не носитель английского языка. Разве бесплатно не значит, что это не стоит денег? )   -  person undu    schedule 29.03.2012
comment
@undu Это может означать и то, и другое. Таким образом, различие между пивом и свободой. gnu.org/philosophy/free-sw.html   -  person pmr    schedule 29.03.2012
comment
@pmr хорошо, теперь я получаю шутку о бесплатном пиве! ^^   -  person undu    schedule 29.03.2012


Ответы (2)


В зависимости от ваших потребностей вы можете просмотреть GEOS, который используется PostGIS для своих геометрических операций, среди прочего, и является более зрелым, чем boost::geometry. Однако его трудно расширить, что вам придется сделать самостоятельно, если вы хотите поддерживать больше, чем простые функции.

Чем boost::geometry сияет, на мой взгляд, так это его способностью адаптироваться к существующим (устаревшим) библиотекам, а это означает, что вы должны иметь возможность сохранить некоторые структуры данных вашего работодателя (или любую другую существующую геометрическую библиотеку) и опираться на них. их с помощью boost::geometry.

Boost::geometry приобретает зрелость и расширяет функции довольно быстро, но я не думаю, что дизайн сильно изменился с прошлого года (когда он был принят в boost). Я бы спросил в списке рассылки - авторы очень активны и готовы помочь.

person meastp    schedule 29.03.2012
comment
Спасибо за разъяснение. Я видел GEOS, и, как вы сказали, его трудно расширить. Но я посмотрю, что я могу сделать :) - person undu; 29.03.2012
comment
Если кто-то хочет использовать функцию, которую boost::geometry поддерживает с существующей (устаревшей) библиотекой геометрии, например. чтение/запись WKT-строк или индекса r-дерева, можно просто адаптировать устаревшие объекты для boost::geometry, вместо того, чтобы создавать промежуточные объекты (именно это вы должны делать с другими библиотеками, такими как GEOS и это требует много памяти и, возможно, процессора). Если вы не связаны устаревшими объектами, это не такая большая проблема. - person meastp; 30.03.2012

Это зависит от ваших потребностей.

Boost — одна из самых эффективных, производительных и зрелых библиотек C++, но когда дело доходит до геометрии, лучше всего подходит geos, я попробовал обе из них в проекте оптимизации 3D-данных.

Плюсы Boost-Geometry: - Производительность - Хорошо продуманный API

Плюсы Geos: -Точная -Зрелая

person Abdelghani Tassi    schedule 19.05.2016