Calculadoras online, como http://www.csgnetwork.com/degreelenllavcalc.html (ver código-fonte da página), usam as fórmulas abaixo para obter medidores por grau. Eu entendo em geral como a distância por grau varia dependendo da localização da latitude, mas não entendo como isso se traduz no abaixo. Mais especificamente, de onde vêm as constantes, os 3 termos "cos" em cada fórmula e os coeficientes (2, 4, 6; 3 e 5) para "lat"?
// Set up "Constants"
m1 = 111132.92; // latitude calculation term 1
m2 = -559.82; // latitude calculation term 2
m3 = 1.175; // latitude calculation term 3
m4 = -0.0023; // latitude calculation term 4
p1 = 111412.84; // longitude calculation term 1
p2 = -93.5; // longitude calculation term 2
p3 = 0.118; // longitude calculation term 3
// Calculate the length of a degree of latitude and longitude in meters
latlen = m1 + (m2 * Math.cos(2 * lat)) + (m3 * Math.cos(4 * lat)) +
(m4 * Math.cos(6 * lat));
longlen = (p1 * Math.cos(lat)) + (p2 * Math.cos(3 * lat)) +
(p3 * Math.cos(5 * lat));
lat
(mesmo que as variáveis resultanteslatlen
elonglen
estão em metros por grau, não metros por radiano). Se você usa graus paralat
, pode até acabar com um valor negativo paralonglen
.Respostas:
O raio principal do esferóide WGS84 é a = 6378137 metros e seu achatamento inverso é f = 298.257223563, de onde a excentricidade ao quadrado é
O raio meridional da curvatura na latitude phi é
e o raio de curvatura ao longo do paralelo é
Além disso, o raio do paralelo é
Essas são correções multiplicativas aos valores esféricos de M e N , ambos iguais ao raio esférico a , que é o que eles reduzem quando e2 = 0.
No ponto amarelo a 45 graus de latitude norte, o disco azul do raio M é o círculo osculante ("beijo") na direção do meridiano e o disco vermelho do raio N é o círculo osculante na direção do paralelo: ambos discos contêm a direção "para baixo" neste momento. Esta figura exagera o achatamento da Terra em duas ordens de magnitude.
Os raios de curvatura determinam os comprimentos dos graus: quando um círculo tem um raio de R , seu perímetro de comprimento 2 pi R cobre 360 graus, onde o comprimento de um grau é pi * R / 180. Substituindo M e r por R - - isto é, multiplicar M e r por pi / 180 - fornece fórmulas exatas simples para os comprimentos de graus.
Estas fórmulas - os quais são baseados unicamente nos valores dados de uma e f (que pode ser encontrado em muitos lugares ) e a descrição do esferóide como um elipsóide de rotação - de acordo com os cálculos na pergunta para dentro de 0,6 partes por milhões (alguns centímetros), que é aproximadamente a mesma ordem de magnitude dos menores coeficientes da pergunta, indicando que eles concordam. (A aproximação é sempre um pouco baixa.) No gráfico, o erro relativo no comprimento de um grau de latitude é preto e o de longitude é tracejado em vermelho:
Dessa forma, podemos entender que os cálculos na questão são aproximações (através de séries trigonométricas truncadas) às fórmulas fornecidas acima.
Os coeficientes podem ser calculados a partir da série de cosseno de Fourier para M e r como funções da latitude. Eles são dados em termos de funções elípticas de e2, o que seria muito confuso para se reproduzir aqui. Para o esferóide WGS84, meus cálculos dão
(Você pode adivinhar como
p4
entra a fórmula. :) A proximidade desses valores com os parâmetros no código atesta a exatidão dessa interpretação. Essa aproximação aprimorada é precisa para muito melhor do que uma parte por bilhão em qualquer lugar.Para testar esta resposta, executei o
R
código para realizar os dois cálculos:O cálculo exato com
radii
pode ser usado para imprimir tabelas com comprimentos de graus, como emA saída está em metros e é assim (com algumas linhas removidas):
Referências
LM Bugayevskiy e JP Snyder, Projeções de Mapas - Um Manual de Referência. Taylor e Francis, 1995. (Apêndice 2 e Apêndice 4)
JP Snyder, Projeções de Mapas - Um Manual de Trabalho. USGS Professional Paper 1395, 1987. (Capítulo 3)
fonte
Essa é a fórmula de Haversine , embora expressa de uma maneira estranha.
fonte