Em quais sistemas de coordenadas os círculos verdadeiros aparecem arredondados?

10

Estou desenvolvendo no Google Maps há algum tempo e estou mudando para o OpenLayers, mas estou preso em um ponto: estou desenhando vetores que são principalmente circulares, mas também envolvem alguma geometria personalizada, portanto não posso usar o createRegularPolygon. Estou criando uma matriz de pontos e enviando-a para um objeto OpenLayers.Layer.Vector. Isso funciona muito bem, mas os 'círculos' resultantes são redondos apenas perto do equador, não em latitudes mais altas. Eles são esmagados com a mesma quantidade que o mapa base em latitudes mais altas, o que parece fazer sentido. Se eu usar o Google como uma camada base, eles terão a forma correta em todas as latitudes, mas estou criando uma solução móvel offline para que não funcione.

O que eu uso para uma camada base (ou quais parâmetros definir) para que minha geometria permaneça redonda em todas as latitudes sem usar o Google ou mapas on-line?

kschaos
fonte

Respostas:

12

Eu acho que seus círculos são mais ou menos assim:

insira a descrição da imagem aqui

(Fonte: blog do centro de mapeamento da Esri )

Você desejará usar o Web Mercator EPSG: 900913 em vez de WGS84 EPSG: 4326 para obter círculos perfeitos

Mais sobre este tópico e um exemplo de como os círculos se parecem no Mercator: a indicatriz de Tissot ajuda a ilustrar a distorção da projeção do mapa

Para fazer com que os openlayers usem o Mercator, é necessário definir a opção sphericalMercator na sua camada base.

sphericalMercator: true,
underdark
fonte
Obrigado! essa era exatamente a informação que eu precisava. Eu pensei que estava trabalhando com uma camada que estava no EPSG: 900913, mas não era esse o caso. Também tive que garantir que todas as transformações fossem do EPSG: 4326 para o EPSG: 900913 e funcionasse perfeitamente. Agora só preciso descobrir como os ícones de imagem quebrados não aparecem quando ele tenta carregar os blocos de mapa enquanto está offline.
kschaos
14

Não existe um mapa de toda a Terra em que todos os círculos (verdadeiros, esféricos) permaneçam verdadeiramente redondos. No entanto, existem maneiras de mapear a Terra em que quase todos os círculos suficientemente pequenos são redondos. Estes são baseados em projeções conformes . Por definição, as mudanças que uma projeção conforme faz nas distâncias em pequenas áreas são de apenas dois tipos: um alongamento uniforme e uma rotação. Obviamente, essas alterações não tornam os círculos menos redondos.

August Epicycloidal

Mapa da terra com uma projeção epicicloidal de agosto . A maioria dos círculos aparecerá verdadeiramente redonda neste mapa.

As projeções conformes comumente usadas são o Mercator (uma projeção cilíndrica), o Stereographic (uma projeção azimutal) e o Lambert Conformal Conic (uma projeção cônica, obviamente). Elas abrangem as três principais famílias de projeções, oferecendo a flexibilidade de escolher um "visual" específico para a gratícula de meridianos e linhas de latitude. Opções adicionais, que podem estar disponíveis em alguns SIG, incluem : Estereográfica Oblatada de Miller , Littrow , Conformal Cônico Oblíquo Bipolar , Lagrange , Eisenlohr , Epicicloidal de agosto , Guyou , Peirce Quincuncial, GS50 , várias projeções de Adams e Lee . (Fonte: Snyder & Voxland, um álbum de projeções de mapas. USGS Professional Paper 1453.) Estes dois últimos indicam a riqueza de possíveis projeções conformes que podem ser criadas e mostram como as projeções conformes não são realmente "preservadoras de formas": as projeções de Adams estão em conformidade um hemisfério em um quadrado e a projeção de Lee o coloca em um triângulo. De fato, o Teorema de Mapeamento de Riemann da Análise Complexa mostra que você pode mapear adequadamente um hemisfério em qualquer polígono!

O OpenLayers usa a biblioteca de projeção Proj4js . O código fonte das projeções é distribuído na pasta / proj4js / lib / projCode /. As projeções conformes incluídas na versão mais recente (1.0.2) são o Mercator , dois Mercator Transversais , dois Mercators oblíquos ("Hotine" e "Swiss Oblique"), Lambert Conformal Conic e Stereographic .

A menos que seu aplicativo seja projetado para funcionar em todo o mundo, explore e estude essas opções para determinar qual seria o melhor para sua região de interesse . Tudo isso pode ser facilmente escalonado e redimensionado para minimizar a distorção total (não apenas de formas, mas também de áreas e distâncias) em uma área específica. A solução mundial padrão é uma variante do Mercator, popularizada pelos mapas do Google.

whuber
fonte
Mais sobre esta resposta encontrada aqui: pasda.psu.edu/help/projection.asp
DPSSpatial
@mapBaker Obrigado por oferecer esse link. Infelizmente, sua caracterização de uma projeção conforme está incorreta: "Uma projeção conforme mantém formas como retângulos". Isso é verdade apenas para formas infinitesimais , não para formas de tamanho finito.
whuber
você conhece alguém na PSU que possa ajudar a ajustar esse documento?
precisa saber é o seguinte
@mapBaker Infelizmente não; Não tenho contatos atuais lá. Eu nem tenho certeza de que eles gostariam de ajustá-lo. Há uma linha tênue entre estar correto e ser pedante. Acredito que eles possam ter valorizado a simplicidade da exposição e - para seu público específico - não quiseram distinguir a preservação das propriedades geométricas em grandes escalas versus pequenas escalas. Também valorizo ​​a simplicidade da exposição, mas fiz um esforço nesta resposta para encontrar um compromisso mais preciso entre simplicidade e correção, enfatizando círculos suficientemente pequenos .
whuber
2

Bem, obviamente você terá problemas desde que use o mapa base na projeção EPSG: 4326. O que você precisa é da projeção Spherical Mercator que, como você notou, é o Google Maps e outros fornecedores de mapas comerciais. Vá em frente e leia isso para entender melhor esse problema.

Para sua solução móvel offline, o OpenStreetMap provavelmente seria uma boa solução.

igorti
fonte