Каковы некоторые рекомендуемые фреймворки для манипулирования пространственными данными в C ++?[закрыто]

StackOverflow https://stackoverflow.com/questions/1046248

Вопрос

Каковы некоторые рекомендуемые фреймворки для манипулирования пространственными данными в 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 и локальной декартовой системой координат.Код на языке Си хорошо протестирован, документирован и является общественным достоянием.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top