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?

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,

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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.