Como converter coordenadas de 6 e 7 dígitos em graus de latitude e longitude

8

Sou um pouco novo em todo o mundo GIS e, embora esteja fazendo grandes progressos desenhando polígonos e outros no Bing Maps, atualmente estou preso. Em nossos dados espaciais SQL, me deparei com dados MULTIPOLYGON, onde todos os valores de coordenadas são números muito grandes (6 e 7 dígitos para o que deve ser latitude e longitude, antes do decimal). Encontrei um método SQL para desmontar o multi-polígono em vários polígonos, mas esses valores grandes não funcionam no Bing Maps nem no Google Maps. Então, eu tenho procurado por um algoritmo para converter esses grandes números no que eu percebi como números regulares de latitude / longitude, como 45.19167 -93.58328 (que funciona em mapas on-line).

Com isso dito, alguém poderia me mostrar ou apontar uma ótima direção para aprender a converter 631456.83, 3816200.79 em algo que eu possa usar online. Eu sei que as coordenadas caem em algum lugar no Arizona.

Jonathan Hansen
fonte
1
Você precisa converter esses dados de um sistema de coordenadas para outro. Não use um algoritmo, use uma biblioteca. Ou um aplicativo de desktop GIS. Ou OGR. alastaira.wordpress.com/ogr2ogr-patterns-for-sql-server #
Alex Leith
3
Atualize a pergunta com a localização dos seus dados / ponto de amostra (cidade, município, etc.). Como o @radar implica, seus dados estão em um sistema de referência de coordenadas projetada, e não geográfica. Pode ser UTM, mas pode ser outra coisa. Saber onde estão os dados permitirá que alguém descubra qual zona UTM, ou se há outro ProjCRS possível.
mkennedy
1
Pergunta duplicada no SO (com um polígono de exemplo): stackoverflow.com/q/20552567
Antonio Falciano
Eu não sabia que esse site existia até eu postar no StackOverflow e receber todos os tipos de respostas de pessoas aparentemente tão confusas quanto eu. :-)
Jonathan Hansen
Há alguma confusão aqui porque você parece ter misturado os significados de latitude e longitude.
whuber

Respostas:

9

Suas coordenadas provavelmente estão no leste e norte do UTM (Universal Transverse Mercator).

Você pode converter as coordenadas UTM em lat / long online usando muitos sites diferentes. Aqui em um . Você também pode executar esse cálculo no Excel ou dentro de um banco de dados, se conseguir elaborar a fórmula. Como alternativa, você pode realizar a conversão dentro de um GIS, como QGIS ou ArcGIS.

Antes de converter coordenadas para lat / long, você precisará saber em qual zona UTM suas coordenadas se enquadram.

Aqui está um exemplo para a América do Norte:

insira a descrição da imagem aqui

Neste exemplo, a maior parte da Flórida está dentro da zona UTM 17N.

Me deparei com esta página pesquisando 'lote converter UTM para lat / long'.

Radar
fonte
3
Se a latitude tem seis dígitos e longitude sete, quase certamente não é uma coordenada UTM.
whuber
1
As zonas UTM são apenas alguns dos muitos sistemas de coordenadas projetadas, portanto o solicitante pode precisar pesquisar qual deles foi usado se uma simples inversão de seus X e Y não começar a fazer sentido para UTM.
PolyGeo
A empresa em que trabalho usa um aplicativo de terceiros para processar a exibição de seus GIS, mas o aplicativo é muito lento e desatualizado, e tenho a tarefa de verificar se uma solução personalizada pode ser desenvolvida para exibir esses mapas GIS no Bing Maps, como parte do nosso serviço online. Eu sei que todas as coordenadas estão dentro dos limites dos EUA.
Jonathan Hansen
Sei em que estado e município as coordenadas se enquadram, além de quantos acres totais, além de campos que presumo serem FarmNumber e TractNumber. Espero que com esses dados eu possa determinar a zona.
Jonathan Hansen
Radar, isso me colocou no estado correto. Muito obrigado por me explicar isso. Agora preciso descobrir uma maneira de determinar dinamicamente as zonas, com base em pares Estado / Condado ... mas isso parece divertido.
11133 Jonathan Hansen
7

Tente este:

http://cs2cs.mygeodata.eu/

ou use "proj" (linha de comando abaixo, assumindo a zona UTM 17 sul e wgs84):

# geographical coordinates (ie. longitude,latitude) to utm
proj -f "%.4f" +proj=utm +zone=17 +south +ellps=WGS84 < myfile

# utm to geographical coordinates (ie. longitude,latitude)
proj -f "%.4f" +proj=utm +zone=17 +south +ellps=WGS84 -I < my file

No seu caso (por exemplo, 631456.83356859628, 3816200.7961099017; que são as coordenadas leste e norte da UTM, respectivamente, como METERS), é necessário conhecer a ZONA ÚNICA e o HEMISFÉRIO (algo como a ZONA SUL 17 acima). Seus dados provavelmente devem estar no WGS84.

No final, se você não conhece a zona UTM que você é, eu simplesmente percorreria as zonas UTM dos EUA (por exemplo, 10-19) para obter as coordenadas geográficas e, em seguida, traçar as coordenadas resultantes para ver quais são as corretas :

for ((utmZone=10;utmZone<20;utmZone++))
do
  echo 631456.83356859628 3816200.7961099017 | proj -f "%.4f" +proj=utm +zone=$utmZone +north +ellps=WGS84 -I
done

obtendo:

-121.5685       34.4790
-115.5685       34.4790
-109.5685       34.4790
-103.5685       34.4790
-97.5685        34.4790
-91.5685        34.4790
-85.5685        34.4790
-79.5685        34.4790
-73.5685        34.4790
-67.5685        34.4790

onde "% .4f" controla o número de casas decimais.

Espero que isto ajude,

Gery
fonte