Quais são algumas estruturas recomendados para manipulação de dados espaciais em C ++? [fechadas]

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

Pergunta

O que são algumas estruturas recomendados para manipulação de dados espaciais em C ++?

Eu estou olhando para um objeto polígono, objeto de ponto, e algumas operações como união, intersecção, distância e área. Eu preciso inserir coordenadas em WGS84 (lon, lat) e obter a área em km quadrado.

Eu preferiria um quadro livre / de fonte aberta, mas estou aberto a sugestões.

Edit: Infelizmente eu preciso de uma solução não-GPL. LGPL está bem.

Foi útil?

Solução

GEOS é uma fonte aberta (LGPL) C ++ geometria / topologia motor. Poderia servi-lo?

Locais úteis para procurar essas coisas estão neste artigo útil no site da O'Reilly e também OSGeo que é uma colaboração para apoiar open source coisas geoespacial.

Outras dicas

Eu também recomendo genérico geometria Biblioteca que recentemente tem sido revisada e acabou aceitando a coleção de impulsionar C ++ Bibliotecas . Como incluído no Boost, a GGL é agora chamado Boost.Geometry, mais precisamente Boost.Geometry aka GGL, Generic Geometria Biblioteca .

Outras ferramentas úteis

  • ORFEO Toolbox (aka OTB) - uma biblioteca de processamento de imagem algoritmo
  • MetaCRS -. Um projeto abrangendo várias projeções e coordenar tecnologias relacionados ao sistema
  • libgeotiff para o linguado manipulação GeoTIFF
  • O CGAL Projeto de Código Aberto fornece acesso fácil a eficiente e algoritmos geométricos fiáveis ??no formar de uma biblioteca de C ++. CGAL é usada em diversas áreas que necessitam geométrico computação, tais como: computador gráficos, visualização científica, computer aided design e modelagem, Sistemas de Informação Geográfica, biologia molecular, imagiologia médica, robótica e planejamento de movimento, malha geração, métodos numéricos.

  • A Geometria Biblioteca Genéricos (geometrylibrary.geodan.nl, atualmente em "preview 4") fornece uma implementação genérica de algoritmos de geometria, trabalhando com geometrias definidas pelo usuário. Os algoritmos incluem alguns algoritmos bem conhecidos e frequentemente necessário como ponto-em-polígono, a área de polígono, da distância de ponto-a-ponto, da distância de ponto-a-linha, linha de corte e grampeamento polígono, cascas convexas. Ele também contém algoritmos de transformação, projecções mapa e algoritmos de selecção. Além de algoritmos a biblioteca oferece aulas de geometria que podem ser utilizados, mas os algoritmos genéricos não dependem deles. (Proposto para ser incluído no Boost)

GEOS para o modelo de geometria, e GDAL / OGR para uma espacial biblioteca de abstração de dados que suporta Rasters e Vectors .

Ao utilizar essas bibliotecas, você também será capaz de lidar com diferentes sistemas de coordenadas (como a transformação de / para WGS84) uma vez que ambos usam Proj.4 sob o capô. Para encontrar distâncias em metros você pode transformar a partir de WGS84 para algo que usa metros como UTM.

Dependendo do quão complexo estes cálculos vão ser que você pode querer considerar escrever o seu próprio. Se você está apenas fazendo área que pode ser a melhor opção para a velocidade e falta de inchaço.

Geographic Foundation Class (GFC) biblioteca é sua melhor aposta.

Não é abrangente e suficiente de alto nível para que você pediu, mas para fazer as transformações geodésicas você pode usar a biblioteca excelentes Geotrans do NGA:

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

Isso vai deixar você converter entre coisas como WGS84 latitude / longitude e uma cartesiano sistema de coordenadas local. O código C é bem testado, documentado e é de domínio público.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top