lunes, 23 de febrero de 2015

Mapas de calor (heatmap) en Global Mapper y QGIS.

Hoy vamos a elaborar un mapa de calor, o heatmap en inglés. Un mapa de calor representa, a partir de una capa de puntos, la densidad de los mismos en un área determinada, de forma que a mayor o menor densidad de esos puntos el área quedará más o menos coloreada según determinados parámetros. Los mapas de calor permiten una rápida identificación de los "puntos calientes" de un terreno. Con este ejemplo gráfico lo identificaréis enseguida:
Mapa de calor de empresas creadas en Andalucía en julio de 2014. Extraído del blog Emprendedor del Siglo XXI.
Lo primero que necesitamos para poder elaborar este tipo de mapas es una fuente de datos, en formato vectorial y que además debe ser geometría de puntos (no de áreas ni de lineas). Bien la podemos elaborar nosotros creando los puntos georeferenciados, bien podemos usar alguno de los archivos disponibles públicamente en webs de estadísticas o datos abiertos. Aunque no he visto que abunden demasiado (al menos en formato shape .shp, si abundan en formato tabla de texto .CSV o excel), hemos encontrado alguno para poder usarlo de ejemplo a la hora de elaborar este artículo. De cualquier forma los software de cartografía suelen tener la posibilidad de importar estos formatos de tabla de texto y representarlos como puntos, siempre por supuesto que contengan las columnas con las coordenadas geográficas correspondientes. Así lo hemos visto en el artículo anterior.
Para nuestro artículo vamos a utilizar primero el vectorial .shp que contiene la ubicación de las paradas de transporte público del Ayuntamiento de Málaga, disponible junto a otros muchos en la web de datos abiertos del Gobierno de España, y lo vamos a representar en Global Mapper.
Abrimos el archivo en Global Mapper y seleccionamos Create Density Grid (Heat Map) from Point Data...  en el menú Analysis:


Se abre la ventana de opciones de nuestro mapa de calor; aquí deberéis jugar con todas ellas haciendo pruebas pues es la mejor manera de comprender lo que hacen y cómo varia el estilo del mapa según pongamos unas u otras. Las más importante quizá sea Search Radius que, para entendernos, establece el radio de influencia de cada punto a la hora de colorear el mapa de calor. Global Mapper suele poner un valor por defecto dependiendo de la escala del mapa bastante acertado, pero no dejéis de probar a variarlo. Y lo mismo con el resto de valores que, para qué engañarnos, alguno no se muy bien en qué consiste...

Cuando hayáis dado con la manera correcta o la que más os guste de lo que queréis representar, nuestro mapa de calor cartografiando las paradas de transporte público del Ayuntamiento de Málaga estará listo y podrá ser exportado a cualquiera de los muchos formatos que Global Mapper nos permite.

Como segundo ejemplo vamos a representar, esta vez en QGIS, el mapa de calor de los centros educativos públicos no universitarios de la Comunidad de Madrid. Abrimos el archivo shape y accedemos a la herramienta mapa de calor:

En la ventana de opciones que se nos abre, os digo lo mismo que en la de Global Mapper: probad y probad hasta haceros con el truquillo de lo que hace cada opción. Las básicas son seleccionar la capa de puntos de entrada (si hubiera varias); el ráster de salida, su ubicación y formato; y el famoso radio que es la más importante.
Las opciones del submenú Avanzado apenas las he usado, pero contienen resolución del ráster de salida, forma del kernel (distintos formatos de mapa), o selección de un campo concreto de la tabla de atributos desde el que generar el radio (si lo hubiera). Lo dicho, a falta de sabiduría, prueba-error.
Una vez todo a nuestro gusto pulsamos Aceptar y en cuestión de segundos nuestro mapa de calor se añade como capa en la pantalla con el nombre del archivo de salida:
Por defecto QGIS nos genera un mapa de calor en degradado de negro a blanco (menos a más puntos) como vemos en la leyenda de capa. Unos cuantos retoques aprovechando lo que ya sabemos sobre este magnífico software, y dejamos el mapa apañado a nuestro gusto:

viernes, 20 de febrero de 2015

Importar tabla de datos en QGIS.

Sigamos con otra de las funciones básicas que utilizaremos muy a menudo a la hora de generar nuestros mapas y de la que tampoco habíamos hablado: importar una tabla de datos y representarla como puntos sobre el terreno. Esto es de tremenda importancia, pues no siempre encontramos los datos en formato shape .shp y a menudo los formatos clásicos de la mayoría de datos estadísticos son .csv o tablas Excel .xls o simple texto plano, y nos interesa muy mucho transformar esas tablas en una representación gráfica de las coordenadas.
QGIS posee la herramienta Añadir capa de texto delimitado, pensada para importar estos formatos de tablas de texto, siempre que contengan al menos los datos básicos de coordenadas geográficas entre sus columnas de datos. No siempre los ficheros que podamos encontrar tendrán la estructura correcta necesaria, aunque siempre podemos corregir dicha estructura con un editor (excel o de texto) antes de proceder a la importación.
Para este ejemplo utilizaremos el archivo 202311-0-colegios-publicos.csv que relaciona los Colegios Públicos de Enseñanza Primaria de la ciudad de Madrid, descargado directamente de la web de datos abiertos del Gobierno de España. Si abrimos el archivo en un simple editor de texto (bloc de notas por ejemplo) vemos la información que contiene:
Como vemos resaltado en amarillo los campos de coordenadas X e Y están presentes en el texto, por lo que en principio el archivo es válido y procedemos a cargarlo en QGIS:
Menú para carga de archivo de texto delimitado, o botón lateral de atajo.
Se nos abre la ventana de opciones a configurar para que QGIS sea capaz de entender y estructurar correctamente la información y representarla espacialmente. En principio QGIS detectará automáticamente la mayoría de los parámetros; si no es así procurad que la ventana esté como figura en la siguiente captura para el ejemplo dado:
En amarillo la ruta a nuestro archivo mediante el botón Explorar... En naranja el nombre que queramos para la capa en QGIS. En Codificación podéis cambiarlo si veis que los textos no reconocen algunos caracteres y no salen correctamente escritos (UTF-8 o System son las más comunes). En Coordenadas mirad que tenga el nombre del campo que efectivamente contiene cada coordenada.
Una vez todo OK pulsamos en Aceptar (QGIS nos pregunta el sistema de coordenadas a emplear) y aparecen en nuestra pantalla los puntos que representan a cada colegio del listado, con su tabla de atributos con toda la información completa:
Ahora sólo tenemos que guardar la capa como un vectorial shape .shp para tenerlo siempre disponible y en un formato realmente universal y que pueden manejar todos los programas de cartografía. Botón derecho sobre la capa:

Y eso es todo. Pensad que incluso podemos elaborar nosotros mismos una tabla de datos básica que contenga las coordenadas de cada punto e importarla sin mayor problema. Ejemplo: hemos hecho en el bloc de notas en un minuto la siguiente tabla separando las palabras con tabuladores:
La importamos en QGIS...
Y ya veis cómo ha reconocido perfectamente las cabeceras y los datos de la tabla colocando cada cosa en su sitio. Si la fuente de datos está en una hoja de cálculo Excel .XLS debemos primero guardar el archivo desde Excel al formato .csv. De esta forma podremos representar espacialmente como puntos vectoriales cualquier conjunto de datos del que tengamos la información de sus coordenadas. Un saludo y a practicar, que merece la pena.

lunes, 16 de febrero de 2015

Generar curvas de nivel con Global Mapper o QGIS.

Este es un artículo de los básicos que quizá debimos haber hecho hace tiempo, pues extraer las curvas de nivel de un Modelo Digital del Terreno (MDT ó DEM) es una de las operaciones más frecuentes en el tratamiento de vectoriales en cartografía. Como más vale tarde que nunca, vamos a explicar como conseguirlas utilizando Global Mapper o QGIS, que tienen esta función perfectamente implementada y de una forma muy sencilla.
Abrimos en Global Mapper el archivo de relieve, en este caso el MDT25 de la hoja 157 del MTN50, disponible como toda España en el Centro de Descargas del CNIG. El formato del archivo es .asc, perfectamente reconocible por Global Mapper sin ninguna operación previa.
MDT25 de la hoja 157 cargado en Global Mapper.
A continuación seleccionamos en el menú Analysis la opción Generate Contours (from Terrain Grid):
Y se nos abre la ventana para configurar todas nuestras opciones. Destacamos en el siguiente gráfico las más significativas de la pestaña Contour Options:
El resto de pestañas de la ventana son para optimización de las curvas (Simplification), para dividir el archivo resultante en varios (Tiling) o para seleccionar zonas concretas (Contour Bounds). Una vez establecidos los parámetros deseados pulsamos OK y el programa se pone a trabajar generando las curvas; para la captura de arriba en pocos segundos el resultado es el siguiente:
Capa de curvas de nivel añadida a nuestro MDT (desactivado para verlo mejor). Hemos pinchado con la herramienta Feature info en una de las curvas, como veis concretamente una que representa la altitud de 1020 metros.
Sólo nos restaría exportar la capa en cualquiera de los múltiples y clásicos formatos vectoriales que nos permite Global Mapper (.shp, .dwg, .dxf, .kml/kmz, .gpx, etc... ) para tenerla disponible como archivo y poder utilizarla en variados softwares según nuestro propósito.
Una manera muy sencilla de conseguir las áreas en vez de las curvas es la siguiente (botón derecho sobre el MDT en el Control Center):
Secuencia creación de áreas de alturas, en este caso le hemos dicho que con un rango de 50 metros.
En pocos segundos Global Mapper nos devuelve la siguiente capa:
Capa de áreas por altura. Seleccionada con la herramienta info un área correspondiente a 900 metros.
Por supuesto esta capa de áreas puede exportarse al formato vectorial deseado exactamente igual que la de líneas perteneciente a las curvas, siendo de esta forma enormemente sencillo elaborar degradados por altura del terreno en cualquier software SIG.

En QGIS es igual de sencillo conseguir nuestras curvas de nivel a partir de un MDT. Una vez cargado en el programa (el mismo MDT en formato .asc anterior), desde el menú Ráster llegamos a esta herramienta:
Seleccionamos nombre, formato y destino del archivo de salida; el intervalo en metros entre curvas; si queremos que contengan el atributo de altitud, y si el resultado se nos cargará en la vista de mapa. En pocos segundos QGIS nos genera el archivo y lo añade a nuestra vista como capa:
En la sección Videotutoriales os dejo un vídeo resumen de cómo generar las curvas de nivel con Global Mapper y QGIS. Incluye también cómo hacerlo con gvSIG y CompeGPS. Este último, para variar, es el más lento y el que más problemas da si nos salimos de su formato vectorial propio .mpv.

jueves, 12 de febrero de 2015

Digimapas: España Total.

Nuevo mapa para nuestra sección Digimapas, aquella en la que colocamos los trabajos que nos sirven para aprender y experimentar en la elaboración de nuestros propios mapas. Esta vez se trata de un mapa web, accesible por tanto para todos vía navegador de internet, en el que no hay nada que descargar sino que funciona como un simple visor de información geográfica.
Vista principal del mapa con panel de capas desplegado.
Nos pareció buena idea reunir en un solo mapa aquellas cartografías más relevantes, de más peso, o que simplemente son las más utilizadas por los aficionados; de esta forma, hemos aglutinado en el mismo visor, a modo de capas, los siguientes servicios WMS básicos del territorio español:
Mapa base de España del Instituto Geográfico Nacional. Mapa de todos conocido cuya descripción de su servicio WMS dice:
Servicio Web de Mapas conforme al perfil INSPIRE de ISO/DIS 19128 que permite visualizar cartografía procedente de diversas bases de datos geográficas del IGN. Para escalas menores se usa la Base Topográfica Numérica (BTN100) y para escalas mayores se usa la Base Topográfica Nacional 1:25.000 (BTN25) junto con la Base Cartográfica Numérica 1:25.000 (BCN25). También se visualiza información procedente de SIGLIM (SIG de Líneas Límite), NGBE (Nomenclátor Geográfico Básico de España), PNOA (Plan Nacional de Ortofotografía Aérea) y Cartociudad. Se ofrecen capas Inspire con información geográfica perteneciente a los siguientes anexos de Inspire: 1) Nombres geográficos, Unidades administrativas, Redes de transporte, Hidrografía, Lugares protegidos (pertenecientes al Anexo I); 2) Elevaciones (pertenecientes al Anexo II); 3) Edificios y Usos de suelo (pertenecientes al Anexo III). La denominación de las capas es conforme con la Directiva INSPIRE 2007/2/EC (nombre, título y estilo Inspire por defecto). Todas tienen asociado un estilo de visualización definido por el IGN y además, el estilo Inspire por defecto. También se muestran otras capas que, bien por los tipos de objetos espaciales, bien por la geometría que se utiliza para representarlos están fuera de Inspire. Son los siguientes: caminos, islas, sombreado del terreno, núcleos de población. Las capas IGNBaseTodo e IGNBaseOrto incorporan además datos de Cartociudad.
Concretamente hemos utilizado la capa IGNBaseTodo, cuya leyenda tenéis AQUI y cuya descripción en metadatos dice:
Representación de objetos geográficos relativos a nombres geográficos, unidades administrativas, redes de transporte (carreteras, ferrocarriles, aeropuertos, puertos, estaciones de ferrocarril), hidrografía (red hidrográfica, masas de agua y construcciones hidrográficas),lugares protegidos (naturales, culturales y arqueológicos), elevaciones (puntos acotados y curvas de nivel), sombreado del terreno, usos del suelo, núcleos urbanos, islas y caminos, manzanas urbanas, viales urbanos y portales. Fuente de datos: BTN100, BCN25-BTN25 y Cartociudad. Escalas de visualización de BTN100: menores de 1:50.000; Escala de visualización de BCN25-BTN25: mayores de 1:50.000; Escala de visualización de Cartociudad: mayores que 1:20.000.
 - Cartografía raster (IGN). O lo que es lo mismo, la cartografía topográfica clásica del IGN en todas sus escalas dependiendo del zoom de visualización. El mapa de mapas. Su descripción en el servicio WMS reza así:
Web Map Server Interface que permite visualizar la cartografía raster del Instituto Geográfico Nacional correspondiente al Mapa de España a escala 1:2000000 hasta una resolución de 420 m/pixel. El Mapa de España a escala 1:1250000 hasta una resolución de 104.44 m/pixel. El Mapa de España a escala 1:500000 hasta una resolución de 40.04 m/pixel. El Mapa Provincial a escala 1:200000 hasta una resolución de 20.16 m/pixel. El Mapa Topográfico Nacional a escala 1:50000 hasta una resolución de 5.04 m/pixel y el Mapa Topográfico Nacional a escala 1:25000 a partir de una resolución de 5.04 m/pixel. Se considera un tamaño normalizado de píxel de 0.28 mm.
- Ortofotos PNOA máxima actualidad. Cobertura de ortofotos del PNOA cuya descripción WMS dice:
Web Map Server Interface que muestra información encuadrada en el Tema 3 del Anexo II de la Directiva Inspire y en el Anexo I, Tema 7 de LISIGE: ortoimágenes. El servicio permite visualizar las ortofotos de máxima actualidad del Plan Nacional de Ortofotografía Aérea (PNOA) a partir de una escala aproximada 1:70000. Para escalas menores (menos detalladas) se visualizan las imágenes de satélite Spot5. La cobertura PNOA está constituida por mosaicos de distinta fecha de adquisición y distinta resolución (50 y 25 cm). El servicio muestra esos mosaicos según el estilo por defecto definido en Inspire.
 - Cartografía OpenStreetMap (OSM). Como mapa de base añadimos también la cartografía clásica de OSM que, como ya sabéis, recoge siempre los cambios hechos por colaboradores por lo que su servidor está siempre actualizado.
Otro ejemplo de visualización a zoom 500 m (Mapa Base semitransparente y fondo IGN Raster).
Lo cierto es que el mapa no tiene ningún misterio, ni ninguna complicación. Pero nos pareció muy útil disponer siempre a mano en un mismo visor de estas cartografías de referencia para cualquier consulta. Probadlo y jugad con las distintas capas, veréis por ejemplo como el relieve del Mapa Base se vuelve semitransparente al zoom de 500 metros, o apagando y encendiendo las capas adecuadas es muy sencillo hacer efectivos contrastes de información. Por supuesto, con una barra de transparencia de capa o alguna herramienta más, el mapa quedaría de lujo, pero recordad que somos novatos en esto y de momento hasta aquí hemos llegado. Cualquier idea, sugerencia, problema o comentario no dudéis en ponerlo. El acceso al mapa lo encontraréis en la sección Digimapas.
Un saludo.

viernes, 6 de febrero de 2015

Publicar mapa web 3D de QGIS.

Siguiendo con otro de los plugins interesantes de QGIS en cuanto a publicar mapas en la web, hoy hablamos de Qgis2threejs. Es este un complemento de QGIS creado por Minoru Akagi que nos permite exportar datos de relieve, imagen de mapa y datos vectoriales a un navegador de internet. O lo que es lo mismo, nos permite representar el mapa en 3D en aquellos navegadores que soporten WebGL (los más comunes). El repositorio del complemento, así como la explicación de su funcionamiento lo tenéis en su web https://github.com/minorua/Qgis2threejs

Nos ponemos a elaborar nuestro sencillo ejemplo.
Preparamos en QGIS el mapa que queramos representar, que en esta ocasión consta de:
- Ortofoto PNOA, hoja 157 según la distribución MTN50, en formato .ecw disponible en el Centro de Descargas del CNIG.
- Modelo Digital del Terreno con paso de malla 25 metros (MDT25) de la misma hoja 157 en formato .asc disponible en el mismo sitio.
- Vectoriales shape .shp de la BTN25, hoja 157-2, conteniendo los ríos y los puntos de cota de esa cuadrícula, disponibles también en el Centro de Descargas.
Todos los elementos de nuestro mapa cargados en bruto en QGIS:
Interfaz del plugin Qgis2threejs.
El resto es cuestión de jugar con todos los parámetros de simbología y etiquetado hasta que nuestro mapa esté a nuestro gusto. Qgis2threejs asumirá todos esos cambios y los representará en pantalla (aparte de las decenas de opciones que el propio plugin tiene). También distingue los vectoriales en puntos, líneas o polígonos para darle a cada uno de ellos distintas opciones de representación. Para que os hagáis una idea, si ejecutamos el plugin tal cual está el mapa en la captura de arriba, sin tocar nada, tendríamos este resultado en nuestro navegador:

Y modificando cuatro cosillas a nuestro gusto, tanto en QGIS como alguna de las variadas opciones del plugin, enseguida podemos llegar a tener algo como esto:
Las opciones del plugin son muchísimas, pudiendo modificar texturas de mapa, ubicación y etiqueta de los vectoriales, resolución del DEM, etc, etc...Un último ejemplo con algunas modificaciones más:

El complemento trabajará en un directorio temporal para abrir el navegador y mostrarnos el resultado. Pero si le especificamos un directorio de salida, nos genera una estructura HTML que puede ser aprovechada para publicar nuestro mapa web en Google Drive o Dropbox, como explicamos en el artículo anterior. Esta es la verdadera razón de haber hablado sobre este plugin: que nos permite generar una estructura de archivos OpenLayers ideal para la publicación web. Saludos!!

martes, 3 de febrero de 2015

Publicar mapa web de QGIS.

Después de mucho trastear sobre una manera cómoda y sencilla de publicar un mapa web elaborado por nosotros y accesible a todo el mundo a través de un simple navegador, hemos dado con una fórmula que creo que os va a gustar. Se trata de transformar nuestro mapa a la carta a una estructura open layers html mediante un plugin disponible en QGIS para ello. El resultado no puede ser más espectacular y, sobre todo, accesible y universal, pues no requiere la creación de complicados servidores ni el uso de infumables softwares. Si no podéis esperar a leer el artículo para ver el resultado, aquí tenéis el enlace:


El resumen de los pasos a seguir es el siguiente:
- Elaborar el mapa en QGIS a base de servicios wms y vectoriales (en teoría se puede hacer incluyendo también capas ráster, pero aún no le he cogido el truco y no me funciona).
- Aplicarle el plugin Export to OpenLayers 3 disponible en QGIS, cuya web es https://github.com/volaya/qgis-ol3 y cuya explicación de manejo la tenemos en https://github.com/volaya/qgis-ol3/blob/master/doc/usage.rst Muchas gracias a Victor Olaya por este fantástico plugin, que aún figura como experimental.
- Los archivos generados los subimos a Google Drive, en una carpeta que compartimos como pública, ya que Drive nos permite servir páginas web gratuitamente como si se tratara de un servicio de hosting. El proceso está muy bien explicado en esta web http://norfipc.com/web/como-crear-sitio-web-gratis-subiendo-paginas-google-drive.html
- Generamos el enlace y ya está disponible vía web nuestro mapa para todo el mundo.

Vamos pues a ello.
Para este ejemplo hemos preparado un mapa de la famosa Ruta del Cares, en plenos Picos de Europa. Hemos buscado el track en Wikiloc (que también contenía unos waypoints del recorrido) y lo hemos cargado en QGIS rodeándole de unas cuantas capas del servicio wms Mapa Base del IGN, abierto y público para todo el mundo: transportes, caminos, toponimia, hidrografía, edificios, curvas de nivel y sombreado de relieve. También hemos añadido los dos servicios wms básicos como son el mapa topográfico del IGN, y las ortofotos PNOA. Como veis, material en abundancia. No nos importaba que alguna de estas capas fueran opacas y, por tanto, taparan a otras, pues nuestro mapa web nos permitirá activarlas o desactivarlas, y lo que queríamos era tenerlas disponibles en nuestro producto para luego poder elegir cual de ellas visualizamos.
Todos los elementos de nuestro mapa cargados y preparados en QGIS para proceder a aplicar el plugin.
Una vez tenemos todo lo que queremos tener en nuestro mapa, aplicamos el plugin cuyo funcionamiento y opciones están explicados en los enlaces que os he puesto más arriba. Como os he comentado el plugin asegura funcionar también con capas raster, tendremos que investigarlo más. Seleccionamos algunas opciones interesantes, como que se nos muestre una ventana pop-up con la info de la tabla de atributos de los vectoriales al pasar el ratón por encima, o el mapa base que nos ofrece el plugin (OSM en este caso), y lo ejecutamos.
Plugin OpenLayers 3 con las opciones al gusto seleccionadas y preparado para ejecutarse.
Los archivos resultantes se guardan en el directorio que hayamos elegido, con la siguiente estructura: un archivo base index.html y una serie de carpetas adjuntas conteniendo los datos del mapa
Estructura de archivos creada por el plugin dentro de nuestra carpeta CaresMAP.
Dicha carpeta (CaresMAP) la subimos a Drive, y en las opciones de compartir pondremos acceso público, según la secuencia básica de la siguiente captura:
Como bien se explica en el enlace que os dejé arriba, abrimos nuestra carpeta compartida y la url que se nos ofrece en el navegador la cambiamos por la url necesaria para que Drive nos haga de host al ejecutarla.
Y con eso ya tenemos nuestro enlace, que es el que nos da acceso al mapa en cualquier navegador como habréis comprobado al pinchar en el del comienzo del artículo. Ahora podemos jugar activando o desactivando las diferentes capas, de forma que en un mismo mapa tenemos muchas posibilidades de visualización diferentes del mismo terreno. Además, el mapa no es limitado, con lo que podemos alejarnos con las mismas capas a otra zona muy distante de la elegida como vista inicial del mapa. También podéis ver cómo al pasar nuestro puntero por encima del track o de los waypoints, una ventana se nos abre automáticamente mostrando la información que hayamos seleccionado mostrar.
Me parece que las posibilidades de este plugin de QGIS, combinado con la posibilidad de alojar los mapas en Drive, son maravillosas e innumerables; y eso que, como dijimos, no está incluida ninguna capa ráster (mapa físico) sino solamente servicios wms. Si conseguimos hacerlo, la combinación de ráster, más vectoriales, más servicios wms, harán que las posibilidades de publicar fácilmente nuestros mapas en la web sean casi infinitas. Eso, y que Google no decida cualquier día cambiar las características de Drive, claro. Por si acaso, lo he comprobado en Dropbox y el sistema también funciona (aquí basta con subir la carpeta de nuestro mapa a la carpeta Public de Dropbox y copiar el enlace para el archivo index.html ). Este es el enlace: https://db.tt/OwJnHaWl
Un saludo.

domingo, 1 de febrero de 2015

Visitas de enero.

Se acabó el mes de enero y fieles a nuestra cita vamos a cartografíar vuestras visitas al blog. Este mes hemos detectado un aumento en el número de visitantes desde muchos de los lugares habituales, y aunque evidentemente la mayoría siguen procediendo desde España, no puedo dejar de saludar a los amigos hispanohablantes que desde América también nos visitan en buen número. Daros las gracias sinceras una vez más, esperando que Cartografía Digital siga siendo de vuestro interés y podamos seguir publicando cosas atrayentes para los que nos gusta este mundillo de mapas y tecnología.

El primer mapa es el ya clásico de visitas por Comunidades Autónomas de España. Disculpas de nuevo por situar Canarias donde está por comodidad para el mapa: prometo devolver algún día a los canarios a su lugar, jaja... ;)

Un segundo mapa con las visitas desde cualquier lugar del mundo que se hayan producido, independientemente de su número, aunque graduado en rojos a mayor número de visitas. En gris los países sin ninguna visita. Ojalá algún día pudiera devolver personalmente estas visitas a todos esos lugares....

Un tercer mapa detalle de la zona de América graduado por número de visitas.

Y un último mapa exactamente como el anterior pero con detalle en la zona europea.

Saludos y gracias a todos.