¿En qué sistemas de coordenadas aparecen los círculos verdaderos redondos?


10

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?

Respuestas:


12

Supongo que tus círculos se ven así:

ingrese la descripción de la imagen aquí

(Fuente: blog del centro de mapeo Esri )

Deberá utilizar Web Mercator EPSG: 900913 en lugar de WGS84 EPSG: 4326 para círculos perfectos

Más sobre este tema y un ejemplo de cómo se ven los círculos en Mercator: la matriz de indicadores de Tissot ayuda a ilustrar la distorsión de la proyección del mapa

Para hacer que las capas abiertas usen Mercator, debe configurar la opción sphericalMercator en su capa base.

sphericalMercator: true,

¡Gracias! esa era exactamente la información que necesitaba. Pensé que estaba trabajando con una capa que estaba en EPSG: 900913 pero ese no era el caso. También tuve que asegurarme de que todas las transformaciones fueran de EPSG: 4326 a EPSG: 900913 y funcionen perfectamente. Ahora solo tengo que descubrir cómo no mostrar los iconos de imágenes rotas cuando intenta cargar en los mosaicos del mapa sin conexión.
kschaos

14

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.

Agosto epicicloidal

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.


Más sobre esta respuesta se encuentra aquí: pasda.psu.edu/help/projection.asp
DPSSpatial

@mapBaker Gracias por ofrecer ese enlace. Desafortunadamente, su caracterización de una proyección conforme es incorrecta: "Una proyección conforme mantiene formas como los rectángulos". Esto es cierto solo para formas infinitesimales , no para formas de tamaño finito.
whuber

¿Conoces a alguien en PSU que pueda ayudar a ajustar ese documento?
DPSEspacial

@mapBaker Lamentablemente no; No tengo contactos actuales allí. Ni siquiera estoy seguro de que quieran ajustarlo. Hay una delgada línea entre ser correcto y ser pedante. Creo que podrían haber valorado la simplicidad de la exposición y, para su audiencia particular, no querían entrar en la distinción entre la preservación de las propiedades geométricas a gran escala frente a las escalas pequeñas. También valoro la simplicidad de la exposición, pero hice un esfuerzo en esta respuesta para encontrar un compromiso más preciso entre la simplicidad y la corrección al enfatizar círculos suficientemente pequeños .
whuber

2

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.