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?
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.
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.
fonte
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.
fonte