¿Cuáles son algunos marcos recomendados para manipular datos espaciales en C ++? [cerrado]

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

Pregunta

¿Cuáles son algunos marcos recomendados para manipular datos espaciales en C ++?

Estoy buscando un objeto poligonal, un objeto puntual y algunas operaciones como unión, intersección, distancia y área. Necesito ingresar coordenadas en WGS84 (lon, lat) y obtener el área en km cuadrados.

Preferiría un marco de código libre / abierto, pero estoy abierto a sugerencias.

Editar: Desafortunadamente, necesito una solución que no sea GPL. LGPL está bien.

¿Fue útil?

Solución

GEOS es un motor de topología / geometría C ++ de código abierto (LGPL). ¿Te conviene?

Los lugares útiles para buscar estas cosas son artículo útil en el sitio web de O'Reilly y también OSGeo que es una colaboración para apoyar el código abierto material geoespacial

Otros consejos

También recomiendo Biblioteca de Geometría Genérica que recientemente ha sido revisado y finalmente aceptado en la colección de Impulsar bibliotecas C ++ . Como se incluye en Boost, el GGL ahora se llama Boost.Geometry, más precisamente Boost.Geometry, también conocido como GGL, Generic Geometry Library .

Otras herramientas útiles

  • ORFEO Toolbox (también conocido como OTB) - una biblioteca de algoritmo de procesamiento de imágenes
  • MetaCRS : un proyecto que abarca varias proyecciones y coordina las tecnologías relacionadas con el sistema.
  • libgeotiff para la manipulación exclusiva de GeoTIFF
  • El CGAL Proyecto de código abierto proporciona fácil acceso a eficiente y algoritmos geométricos confiables en el forma de una biblioteca de C ++. CGAL se utiliza en varias áreas que necesitan geometría computación, como: computadora gráficos, visualización científica, diseño y modelado asistido por computadora, Sistemas de Información Geográfica, biología molecular, imagen médica, robótica y planificación del movimiento, malla generación, métodos numéricos.

  • La Biblioteca de Geometría Genérica (geometrylibrary.geodan.nl, actualmente en " preview 4 ") proporciona una implementación genérica de algoritmos de geometría, trabajando con geometrías definidas por el usuario. Los algoritmos incluyen algunos algoritmos conocidos y a menudo necesarios como punto en polígono, área de polígono, distancia de punto a punto, distancia de punto a línea, recorte de línea y recorte de polígono, cascos convexos. También contiene algoritmos de transformación, proyecciones de mapas y algoritmos de selección. Además de los algoritmos, la biblioteca proporciona clases de geometría que podrían usarse, pero los algoritmos genéricos no dependen de ellos. (Se propone incluir en Boost)

GEOS para el modelo Geometry, y GDAL / OGR para un espacio biblioteca de abstracción de datos que admite Rasters y Vectores .

Al usar estas bibliotecas, también podrá manejar diferentes sistemas de coordenadas (como la transformación de / a WGS84) ya que ambos usan Proj.4 debajo del capó. Para encontrar distancias en metros, puede transformarse de WGS84 a algo que use metros como UTM.

Dependiendo de cuán complejos sean estos cálculos, puede considerar escribir los suyos. Si solo está haciendo un área que podría ser su mejor opción para la velocidad y la falta de hinchazón.

de lo contrario, la biblioteca de la clase de base geográfica (GFC) es su mejor opción.

No es lo suficientemente completo y de alto nivel para lo que solicitó, pero para realizar transformaciones geodésicas puede usar la excelente biblioteca GEOTRANS de la NGA:

http://earth-info.nga.mil/GandG/geotrans/

Eso le permitirá convertir entre cosas como WGS84 lat / long y un sistema de coordenadas cartesianas locales. El código C está bien probado, documentado y es de dominio público.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top