Pergunta

Sei que isso não é potencialmente uma questão de programação, no entanto um problema Eu continuo batendo em como um programador, então eu acho que outros aqui pode ter conhecimento útil para ação.

Eu tenho um mapa de uma região da terra (que poderia ser qualquer, mas aqui está um exemplo ) como eu deveria determinar a projeção usada no mapa e, em seguida, como devo programaticamente transformar coordenadas de latitude e longitude em posições de pixels na imagem.

No momento eu tenho Matlab código para abrir a imagem e traçar o (x, y) coord resultante, mas eu não consigo descobrir como converter lat / longs para x, y!

Qualquer ajuda em tudo seria muito apreciada.

Foi útil?

Solução 2

Acontece que programaticamente calcular a projeção de um mapa é uma tarefa complexa de processamento de imagem. A maneira que eu consegui contornar este problema é simplesmente usando mapas que têm projeções bem definidas - por exemplo, o Google Maps usar a projeção Mercator, como fazem a maioria dos mapas do Reino Unido (como o nosso Grid Reference britânico é baseado no Universal Transversa de Mercator).

Espero que isso ajude alguém fora!

Outras dicas

coordenadas geográficas são uma variação de coordenadas esféricas. Você pode transformá-los em coordenadas normais:

x = r * sin(90 - lat) * cos(lon)
y = r * sin(90 - lat) * sin(lon)
z = r * cos(90 - lat)

Isto não é realmente preciso, porque a Terra não é exatamente uma esfera. Dependendo do tipo do mapa, há várias maneiras de obter coordenadas 2D a partir destes. A imagem pode ser projectada a partir da esfera de um cilindro ou dois planos.

Esses links podem ajudar:

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