Estou trabalhando com uma pilha ESRI, armazenando minhas camadas em um banco de dados geodésico-SDE habilitado para sql-espacial (tipo Geometry, Web Mercator-3857).
Como estou criando um aplicativo de mapeamento da web, por padrão, os blocos também estão no web mercator, 3857.
Via procs armazenados, eu uso STDistance para consultar distâncias da localização de um usuário (coordena também no web mercator) até as várias camadas.
O problema é que, devido à distorção do web mercator, minhas distâncias estão cada vez mais afastadas, quanto mais distantes do equador são feitas.
Eu pensei em armazenar minhas camadas no tipo sql-spatial-geography (em vez de geometry), mas:
- Imagino que minhas consultas à distância demorem muito mais (distâncias calculadas na superfície esférica)
- precisarei reimportar muitos dados
- os serviços arcgis não serão tão rápidos quanto precisarão projetar em tempo real
Se eu for ao Google Maps e fizer um cálculo de distância, a distância retornada será muito mais precisa, mesmo nas regiões Nortern / Southern, por isso presumo que o Google esteja corrigindo as distorções causadas pela projeção do web mercator.
Minha pergunta então: Existe um valor de fator simples que pode ser aplicado aos cálculos de distâncias feitos na projeção do web mercator para obter a distância "correta"?
cos((l1 + l2)/2)
que fornecerá a distância da linha de rumo / curso constante, em vez de uma distância de grande círculo.