25-10-2021
Medição de Distâncias num Mapa com OpenLayers
Medir a distância entre dois pontos num mapa parece uma das tarefas mais simples a realizar. Mas na verdade, para obter a maior precisão possível, convém garantir um conjunto de condições, caso contrário podemos estar a cometer erros na medição. Este problema é particularmente crítico quando estamos em determinadas zonas do globo terrestre e/ou a distância a medir é significativamente grande.
O problema:
Na maior parte das situações, um mapa é visualizado em duas dimensões (2D), ou seja, é o resultado da projeção dos seus elementos num sistema de referência ou coordenadas. Existem centenas de sistemas de coordenadas, em que cada um é desenhado para poder representar da melhor forma uma determinada área geográfica, seja ela do tamanho de um país ou do tamanho de todo o globo terrestre. A maior parte dos problemas de medição acontecem nestes últimos, uma vez que a distorção do mapa aumenta no sentido do Equador para Norte ou Sul (ver figura em cima).
A solução:
Usando a biblioteca profissional de mapas OpenLayers, a mais usada nos Sistemas de Informação Geográfica (SIG), entre os quais o #niuGIS, é possível medir distâncias da forma mais aproximada e correta possível. O OpenLayers tem funções nativas para determinar a distância entre dois pontos. Mas esta distância é sempre relativa ao sistema de referência (coordenadas) sobre o qual a geometria está representada. Para calcular o valor real, ou por outras palavras, o valor mais aproximado da realidade é usado um módulo específico da biblioteca que se chama Sphere. Com este módulo é possível determinar o tamanho ou área de uma geometria diretamente sobre a esfera terrestre. O módulo usa o valor do raio mediano do planeta Terra como referência (6.371.008,8 m), mas permite que este valor possa ser ajustado, para situações mais específicas.
Exemplo:
Vamos verificar a distância medida entre dois pontos bastantes distantes: Lisboa, e uma localidade a norte da Rússia, Amderma. A figura anterior mostra a linha da distância medida numa projeção plana Web Mercator (EPSG:3857). Vemos claramente a linha reta entre os dois pontos, com o valor: 10.091,107 km. A figura seguinte mostra a linha entre os dois pontos, calculada sobre a esfera do globo terrestre e projetada de novo num plano. A distância aqui calculada é de 5.278,40 km, que é efetivamente o valor mais correto. Comparando com a primeira projeção, temos uma diferença de mais de 4.800 km, o que é um valor muito alto.
Conclusão:
Com este exemplo conseguimos perfeitamente ver que é absolutamente incorreto fazer medições de distâncias usando os sistemas de coordenadas planos. Felizmente, bibliotecas como o OpenLayers permitem fazer os cálculos corretos, com a melhor aproximação à realidade possível, e de forma direta.
Artigos Relacionados:
RELACIONADAS