Cómo cambiar la proyección de un mapa en CARTO

CARTO Builder, al igual que la mayoría de aplicaciones web mapping y los principales proveedores de mapas online (OpenStreetMap, Google, Mapbox, ESRI, etc.), utiliza la proyección Web Mercator para proyectar los mapas en la web.

Web Mercator es una variante de la proyección de Mercator que se hizo muy popular a partir del año 2005 cuando Google Maps la adoptó como proyección para sus mapas.

Su éxito se debe, en gran medida, a la eficiencia que ofrece para renderizar map tiles en los navegadores web.

En este artículo veremos como utilizando unas sencillas líneas de código se puede cambiar la proyección de un mapa. Nosotros aplicaremos la proyección World Bonne.

Importar datos

Accedemos a nuestra cuenta de CARTO e importamos desde DATA LIBRARY las capas ne_50m_ocean y ne_50m_land.

Agregar proyección World Bonne

CARTO dispone de una serie de proyección predeterminadas que pueden ser utilizadas para elaborar cualquier mapa. Para acceder a la lista de proyecciones disponibles accedemos a alguno de los dos datasets que hemos importado y en la vista de SQL aplicamos la siguiente consulta.

En la tabla de datos se mostrarán las proyecciones predeterminadas que incluye nuestra cuenta.

Como nuestra proyección no está incluida en la lista vamos a agregarla y de esta forma la tendremos siempre disponible para que la podamos utilizar en cualquiera de nuestros mapas.

Con la siguiente consulta SQL insertaremos la proyección World Bonne en la tabla spatial_ref_sys que es la que contiene todas las proyecciones que ofrece CARTO.

Para obtener esta consulta SQL o cualquier otra de otras proyecciones se puede hacer desde la web epsg.io.

Aplicamos la consulta y ya tendremos guardada la proyección para poder utilizarla.

proyección CARTO Builder

Para asegurarnos de que se ha importado correctamente aplicamos una nueva consulta SQL para que nos devuelve aquellas proyecciones cuyo código SRID (identificador de sistema de referencia espacial) es 54024.

Aplicar proyección al mapa

Creamos un mapa con las dos capas que hemos importado y le aplicamos un color blanco como mapa base ya que los mapas base que ofrece CARTO están diseñados para la proyección Web Mercator.

Para aplicar la nueva proyección utilizaremos la función ST_Transform de PostGIS sobre los datos de la columna the_geom_webmercator.  Esta columna que está oculta (se puede consultar a través de SQL) posee la misma geometría que la columna the_geom pero permite proyectar nuestros datos en la proyección Web Mercator (EPSG_3857) con el fin de acelerar la renderización de las teselas en los servicios de mapas.

En la capa ne_50m_ocean accedemos a la vista SQL y aplicamos la siguiente sentencia para transformar the_geom_webmercator con la proyección World Bonne.

proyección de un mapa en CARTO

En la capa ne_50m_land aplicamos la misma consulta a excepción de cambiar el nombre de la capa.

Con estas dos sentencias SQL conseguimos que los datos de nuestro mapa se representen con la proyección World Bonne.

Para cambiar de proyección es imprescindible utilizar la función ST_Transform en la columna the_geom_webmercator y seleccionar las columnas the_geom y cartodb_id. El resto de columnas son opcionales y para añadirlas basta con separarlas por comas.

Aplicar estilo a las capas

Aplicamos un estilo a las capas para que se aprecie mejor la diferencia entre la parte continental y oceánica.

proyección de un mapa en CARTO estilo

Publicar mapa

Por último, publicamos el mapa y obtendremos un resultado muy parecido a este.

Si quieres aprender más cosas sobre CARTO Builder inscríbete en nuestro curso online GIS en la nube.

Let’s connect!

Date de alta en nuestro newsletter
y recibe este ebook gratuito

Y una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos