Каковы некоторые рекомендуемые фреймворки для манипулирования пространственными данными в C ++?[закрыто]
-
20-08-2019 - |
Вопрос
Каковы некоторые рекомендуемые фреймворки для манипулирования пространственными данными в C ++?
Я ищу полигональный объект, точечный объект и некоторые операции, такие как объединение, пересечение, расстояние и площадь.Мне нужно ввести координаты в WGS84 (lon, широта) и получить площадь в квадратных километрах.
Я бы предпочел фреймворк со свободным исходным кодом, но я открыт для предложений.
Редактировать:К сожалению, мне нужно решение, отличное от GPL.С LGPL все в порядке.
Решение
ГЕОС является движком геометрии / топологии C ++ с открытым исходным кодом (LGPL).Может быть, вам подойдет?
Полезные места для поиска этого материала следующие полезная статья на веб-сайте O'Reilly, а также ОСГео это совместная работа по поддержке геопространственных материалов с открытым исходным кодом.
Другие советы
Я также рекомендую Общая библиотека Геометрии который недавно был рассмотренный и в конце концов был принят в коллекцию Расширяйте Библиотеки C ++.Как включено в Boost, GGL теперь называется Boost.Геометрия, точнее Повышение.Геометрия, она же GGL, универсальная библиотека геометрии.
Другие полезные инструменты
- Набор инструментов ORFEO (aka OTB) - библиотека алгоритма обработки изображений
- МетаКРЫ - проект, включающий в себя несколько проекций и технологии, связанные с системой координат.
- либгеотиф для единоличных манипуляций с GeoTIFF
В CGAL Проект с открытым исходным кодом обеспечивает легкий доступ к эффективным и надежным геометрическим алгоритмам в форме библиотеки C ++.CGAL используется в различных областях, требующих геометрических вычислений, таких как:компьютер графика, научная визуализация, автоматизированное проектирование и моделирование, географические информационные системы, молекулярная биология, медицинская визуализация, робототехника и планирование движения, сетка генерация, численные методы.
Библиотека Generic Geometry (geometrylibrary.geodan.nl, в настоящее время в "предварительном просмотре 4") предоставляет общую реализацию алгоритмов геометрии, работающих с определяемыми пользователем геометриями.Алгоритмы включают в себя некоторые хорошо известные и часто необходимые алгоритмы, такие как "точка в полигоне", "площадь полигона", "расстояние от точки до точки", "расстояние от точки до линии", "обрезка линий" и "обрезка полигонов", "выпуклые оболочки".Он также содержит алгоритмы преобразования, картографические проекции и алгоритмы выбора.Помимо алгоритмов, библиотека предоставляет классы геометрии, которые могут быть использованы, но общие алгоритмы не зависят от них.(Предлагается включить в Boost)
ГЕОС для геометрической модели и GDAL/OGR для библиотеки абстракции пространственных данных, которая поддерживает Растры и Векторы.
Используя эти библиотеки, вы также сможете обрабатывать различные системы координат (например, преобразование из / в WGS84), поскольку обе они используют Проект.4 под капотом.Чтобы найти расстояния в метрах, вы можете перейти от WGS84 к чему-то, что использует метры, такие как UTM.
В зависимости от того, насколько сложными будут эти вычисления, вы можете подумать о написании своих собственных.Если вы просто занимаетесь областью, это может быть вашим лучшим вариантом из-за скорости и отсутствия наворотов.
в противном случае Библиотека Geographic Foundation Class (GFC) это ваш лучший выбор.
Это недостаточно полно и высокоуровнево для того, что вы просили, но для выполнения геодезических преобразований вы можете использовать превосходную библиотеку GEOTRANS от NGA:
http://earth-info.nga.mil/GandG/geotrans/
Это позволит вам конвертировать между такими вещами, как WGS84 lat / long и локальной декартовой системой координат.Код на языке Си хорошо протестирован, документирован и является общественным достоянием.