Pergunta

Estou encarregado de um programa usado para criar um conjunto de nós e caminhos para consumo por um veículo terrestre autônomo. O programa acompanha os locais de todos os itens em seu mapa, indicando a posição do item como sendo x metros norte e y metros a leste de um ponto de origem de 0,0. No mundo real, o veículo conhece a localização do Lat e Long da origem, pois é determinado por um sistema DGPS e é preciso até alguns centímetros. Meu programa ignora quaisquer coordenadas LAT Long.

É um dos meus objetivos modificar o programa para acompanhar os coordenados de itens Lat Long, além de um ponto de origem e a posição x, y dos itens em relação a essa origem. No início, parece que vou modificar o programa para permitir que os coordenados Lat Long da origem sejam transmitidos e, depois disso, desejo que o programa calcule automaticamente o LAT de cada item atualmente em um mapa. Pelo que pesquisei até agora, acredito que precisarei descobrir a matemática por trás da conversão para coordenados de Lat Long de uma projeção da UTM, onde especifique os pontos de origem e meridianos etc., em oposição ao que já está definido para o UTM.

Eu vim para pedir a vocês programadores GIS, estou no caminho certo? Parece -me que há muito o que envolver, e não tenho certeza se a resposta não é algo tão simples como: "Oh, sim, há uma conversão de metros em Lat Long, aqui"

Atualmente, devido à natureza dos DGPs, o sistema realmente não precisa se preocupar com locais mais do que oh, o que ... 40 km? raio longe da origem. Diante disso, e o fato de eu precisar garantir que o erro nas minhas coordenadas não seja maior que 0,5 metros, preciso de algo mais complexo do que uma constante de conversão LAT/LAT/longa e metros?

Estou com os joelhos em materiais aqui. Eu poderia usar algumas dicas sobre quais conceitos para pesquisar.

Muito obrigado!

Foi útil?

Solução

Dado um ponto de partida em Lat/Long e uma distância e rolamento, encontrar o ponto final é um cálculo geodésico. Há um grande resumo dos cálculos e erros geodésicos no Site proj.4. Eles chegam à conclusão de que o uso de um modelo esférico pode obter resultados para distância entre os pontos com mais de 0,51% de erro. Isso, combinado com uma fórmula para traduzir entre WGS-84 e ECEF (Veja as seções "LLA para ECEF" e "ECEF TO LLA", parece que recebe o que você precisa.

Se você quer realmente obter os erros pregados pela projeção inversa do seu mapa plano para o WGS-84, proj.4 é um pacote de software de projeção. Possui código -fonte e vem com três utilitários de linha de comando - proj, que se converte para/a partir de projeção cartográfica e dados cartesianos; cs2cs, que converte entre diferentes projeções cartográficas; e geod, que calcula as relações geodésicas.

O USGS publica um Tratamento muito abrangente das projeções de mapa.

Outras dicas

Eu faria um cálculo completo, se puder. Dessa forma, você sempre será o mais preciso possível.

Se você estiver usando C ++ o Gdal é uma biblioteca muito boa.

Por um intervalo de 40 km, você pode achar que a aproximação do mundo a uma superfície plana 2D pode funcionar, embora uma transformação UTM seja o caminho ideal a seguir - em qualquer caso, eu defenderia o uso das coordenadas WGS84 reais e elipsóides Para cálculos como grande distância do círculo ou cálculo de rolamentos.

Se você ficar entediado, poderá descer uma linha semelhante a algo em que tenho trabalhado, que pode ser usado como uma classe base para dados diferentes, como OSGB36 ou WGS84 ...

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