He estado desarrollando en Google Maps durante un tiempo y me estoy cambiando a OpenLayers, pero estoy atascado en un punto: estoy dibujando vectores que son en su mayoría circulares pero también involucran cierta geometría personalizada, por lo que no puedo usar createRegularPolygon. Estoy creando una matriz de puntos y enviándola a un objeto OpenLayers.Layer.Vector. Esto funciona muy bien, pero los 'círculos' resultantes solo son redondos cerca del ecuador, no en latitudes más altas. Se aplastan aproximadamente la misma cantidad que el mapa base en latitudes más altas, lo que parece tener sentido. Si uso Google como capa base, entonces tienen la forma correcta en todas las latitudes, pero estoy haciendo una solución móvil fuera de línea para que no funcione.
¿Qué uso para una capa base (o qué parámetros configurar) para que mi geometría permanezca redonda en todas las latitudes sin usar Google o mapas en línea?
No existe un mapa de toda la tierra en el que todos los círculos (verdaderos, esféricos) permanezcan verdaderamente redondos. Sin embargo, hay formas de mapear la tierra en las que casi todos los círculos suficientemente pequeños son redondos. Estos se basan en proyecciones conformes . Por definición, los cambios que realiza una proyección conforme a distancias dentro de áreas pequeñas son de dos tipos solamente: un estiramiento uniforme y una rotación. Obviamente, estos cambios no hacen que los círculos sean menos redondos.
Mapa de la tierra con una proyección epicicloidal de agosto . La mayoría de los círculos aparecerán realmente redondos en este mapa.
Las proyecciones conformales comúnmente utilizadas son Mercator (una proyección cilíndrica), Estereográfica (una proyección azimutal) y Lambic Conformal Conic (una proyección cónica, obviamente). Estos cubren las tres principales familias de proyecciones, dándole la flexibilidad de elegir un "aspecto" particular para la retícula de meridianos y líneas de latitud. Las opciones adicionales, que pueden estar disponibles en algunos SIG, incluyen la estereográfica oblada de Miller , Littrow , bipolar oblicua cónica conforme , Lagrange , Eisenlohr , agosto epicicloidal , Guyou , Peirce Quincuncial, GS50 , varias proyecciones de Adams y Lee . (Fuente: Snyder & Voxland, Un álbum de proyecciones de mapas. USGS Professional Paper 1453.) Estos dos últimos indican la riqueza de posibles proyecciones conformes que se pueden crear y muestran cómo las proyecciones conformes no son realmente "preservar la forma": proyecciones Adams mapa conforme un hemisferio en un cuadrado y la proyección de Lee lo coloca en un triángulo. De hecho, el teorema de mapeo de análisis complejo de Riemann muestra que puedes mapear un hemisferio conforme a cualquier polígono.
OpenLayers usa la biblioteca de proyección Proj4js . El código fuente de las proyecciones se distribuye en la carpeta / proj4js / lib / projCode /. Las proyecciones conformes incluidas con la última versión (1.0.2) son Mercator , dos Mercators transversales , dos Mercators oblicuos ("Hotine" y "Swiss Oblique"), Lambert Conformal Conic y Stereographic .
A menos que su aplicación esté diseñada para funcionar en todo el mundo, explore y estudie estas opciones para determinar cuál sería la mejor para su región de interés . Todo esto se puede volver a centrar y reescalar fácilmente para minimizar la distorsión total (no solo de formas, sino también de áreas y distancias) dentro de un área específica. La solución mundial predeterminada es alguna variante del Mercator, popularizada por los mapas de Google.
fuente
Bueno, obviamente tendrá problemas siempre que use el mapa base en EPSG: proyección 4326. Lo que necesita es la proyección esférica de Mercator que, como notó, son Google Maps y otros proveedores de mapas comerciales. Siga leyendo y lea esto para comprender mejor este problema.
Para usted, la solución móvil sin conexión OpenStreetMap probablemente sería una buena solución.
fuente