Mapeo web con QGIS2Web¶
Advertencia
Este tutorial está ahora obsoleto. Una versión nueva y actualizada está disponible en Mapeo Web con QGIS2Web (QGIS3)
El mapeo web es un medio genial de publicar sus datos SIG a la web y hacerlos accesibles a otros usuarios. Crear un mapa web es un proceso muy diferente que crear uno en un SIG. Los usuarios SIG no son típicamente programadores web y ello presenta un desafío cuando uno necesita crear un mapa web que es de la misma calidad que un mapa creado en un SIG. Afortunadamente, hay disponibles herramientas que traducen fácilmente su trabajo en QGIS a mapas web. En este tutorial, aprenderemos como usar el complemento QGIS2Web para crear un mapa web usando librerías OpenLayers o Leaflet de su proyecto QGIS.
Vista general de la tarea¶
Crearemos un mapa web openlayers de los aeropuertos del mundo.
Otras habilidades que aprenderá¶
Como usar Editar Widgets en QGIS para esconder ciertos campos y establecer tipos personalizados.
Como crear un campo virtual usando la Calculadora de Campo.
Crear etiquetas para entidades que aparecen sólo a cierta escala.
Obtener los datos¶
Usaremos los el conjunto de datos Aeropuertos de Natural Earth.
Descargue el archivo shape Aeropuertos.
Para su comodidad, puede descargar directamente una copia de los conjuntos de datos de los enlaces abajo:
Fuente de Datos [NATURALEARTH]
Procedimiento¶
Abra QGIS y vaya a
. Navegue a la ubicación del archivo descargado y seleccionene_10m_airports.zip
. Clic en Aceptar.

Ahora crearemos un mapa en QGIS que se parece y se comporta justo como quisiéramos en el mapa web. El complemento
qgis2web
replicará la configuración QGIS y creará automáticamente el mapa web si que sepamos sobre las librerías de mapeo web. Cuando un usuario hace clic en un marcador de aeropuerto, queremos una ventana de información que muestre información útil acerca del aeropuerto. Esta información ya está presente en la tabla de atributos de la capane_10m_airports
. Clic-derecho en la capane_10m_airports
y seleccione Propiedades.

Cambie a la pestaña Campos. Notará los diferentes atributos presentes en la capa. Alguno de ellos no son relevantes a los usuarios de nuestro mapa web, por lo que podemos elegir esconderlos. Mantendremos los campos
type
,name
,iata_code
ywikipedia
y esconderemos los otros. Clic en el botón Editar Texto bajo la columna Editar widget para el campo`scalerank
.

En el diálogo Editar Propiedades del Widget, escoja
Hidden
como el tipo. Clic en Aceptar.

De forma similar, establezca otros campos como de tipo Hidden. Como puede haber notado, hay otros tipos disponibles de campo que nos permiten establecer como aparecen los campos a los usuarios de nuestro mapa. Clic en Editar Widget para el campo
wikipedia
.

Seleccione
Vista Web
como el tipo del campo. Este tipo indica que el valor contenido en este campo es una URL.

También podemos usar la columna Alias para indicar un nombre alternativo para los campos sin realmente cambiarlos en la tabla de datos por detrás. Esto es útil para dar nombres más amigables al usuarios para los usuarios de nuestro mapa. Agregue alias según su criterio y clic en Aceptar.

De vuelta en la ventana principal QGIS, escoja la herramienta Identificar y clic en cualquier punto. El panel Identificar Resultados mostrará los atributos bien formateados con los nuevos alias agregados. Notará que los campos ocultos no aparecen en los resultados.

Mientras este método es útil, hay una limitación. No somos capaces de cambiar el orden de los campos. Una manera de superar esta limitación es crear un
Campo Virtual`. En nuestro caso, si quisiéramos que el campo ``tipo
apareciera al final de la ventana de información, podemos simplemente agregar un nuevo campo virtual al final y esconder el campotipo
original. Mientras estamos en ello - también podemos usar una expresión para formatear mejor los valores de tipo. Clic-derecho en la capane_10m_airports
y escoja Propiedades. Vaya a la pestaña Campos y clic en Calculadora de Campo.

Como los nombres de campo necesitan ser únicos, use
Type
como el nuevo nombre de campo. Establezca el tipo del campo comoTexto (Cadena)
con una longitud de25
caracteres. El campo``type`` contiene valores comosmall
,mid
,large
, etc. Podemos agregar una expresión para cambiar las mayúsculas/minúsculas de las palabras a la forma de oración y anexar la palabra airport para mayor legibilidad. Ingrese la siguiente expresión en la caja Expresión y clic en Aceptar.
concat( title("type"), ' Airport')

Ahora que tenemos un campo
Type
que se ve mejor, podemos proseguir y definir el Edit Widget paratype
comoHidden
.

Use la herramienta Identificar para verificar que los atributos aparecen como se espera.

Ahora definamos el estilo de nuestra capa para que sea más llamativa e informativa. Clic-derecho la capa
ne_10m_airports
y seleccione Propiedades. Cámbiese a la pestaña Estilo. Escoja el estiloCategorizado
y nuestro campo virtualType
como la Columna. Clic en Clasificar.

Verá que un círculo con color diferente será asignado a un tipo diferente de aeropuerto. Para el propósito de este tutorial, restringiremos el mapa a los aeropuertos civiles. Mantenga presionada la tecla Ctrl y seleccione todas las categorías para aeropuertos militares. Una vez seleccionadas, clic en Eliminar.

Aparte de asignar un color diferente a la categoría, podemos cambiar el tamaño del símbolo para ayudar visualmente a nuestros usuarios a que distingan diferentes tipos de aeropuertos. Clic-derecho en una categoría y seleccione Cambiar tamaño.

Defina el valor Tamaño como
3
para la categoríaLarge Airport
.

De forma similar, defina el Tamaño como
2
paraMid Airport
y1
paraSmall Airport
.

Para un mapa completo, también necesitamos etiquetar cada aeropuerto. Cámbiese a la pestaña Etiquetas en el diálogo Propiedades. Seleccione
Mostrar etiquetas para esta capa
y elijaiata_code
como el valor para Etiquetar con. También definiremos la opción Representación de manera que las etiquetas sólo aparecerán cuando el usuario esté suficientemente acercado. Marque Visibilidad dependiente de la escala bajo Opciones de etiqueta. Ingrese1
como la escala Mínima y10000000
como la escala máxima. Esta configuración representará las etiquetas sólo después de que el usuario se haya acercado más que la escala1:10000000
y será visible hasta la escala1:1
.

Como estamos usando círculos para representar los aeropuertos, necesitamos asegurar que las etiquetas no se sobreponen con los círculos. Vaya a la pestaña Ubicación en el diálogo Etiquetas y defina la Ubicación como
Cartográfica
. SeleccioneDe los bordes de símbolo
como la Distancia de desplazamiento de. Clic en Aceptar.

Ahora nuestro mapa está listo. Este es un buen momento para guardar nuestro trabajo. Vaya a
. IngreseAeropuertos
como el nombre del proyecto.

Ahora estamos listos para exportar nuestro proyecto como un mapa web. Instale el complemento
qgis2web
yendo a (Vea Uso de Complementos para más detalles sobre la instalación de complementos en QGIS). Una vez que el complemento esté instalado, vaya a .

En el diálogo Exportar a mapa web, marque Añadir lista de capas en el panel de abajo, debajo de la sección Apariencia. También seleccione
ne_10m_airports: iata_code
como el campo para Búsqueda de etiqueta. Marque el Mostrar ventana emergente cuando se pase encima para permitir mostrar ventanas de información cuando se pase por encima. Podemos también definir un mapa base de manera que los usuarios tengan más contexto cuando miren la capa de aeropuertos. SeleccioneOSM B&W
para usar un mapa base con tema blanco y negro usando datos OpenStreetMap. También tiene una opción para elegirOpenLayers
oLeaflet
para la biblioteca de mapeo web. Restringiremos este tutorial al uso de la bibliotecaOpenLayers
. Clic en Actualizar Previsualización` para ver como se verá su mapa exportado. Antes de que hagamos la exportación propia, necesitamos definir la Carpeta de exportación. Puede seleccionar una carpeta de su gusto y clic en Exportar.

Una vez que se complete la exportación, el navegador predeterminado de su computadora abrirá y mostrará el mapa web interactivo.

Su mapa web está ahora listo para publicarse.

El complemento
qgis2web
tiene varias limitaciones y no puede hacer todo lo que permiten las poderosas bibliotecas de mapeo webOpenLayers
yLeafLet
. Este proceso puede actuar como un punto de partida en su proceso de mapeo web y ahorrarle tiempo valioso creando una plantilla básica de la que podrá personalizar el mapa web. Para resaltar el hecho de que la salida creada de este proceso puede ser fácilmente cambiada para ajustarse a su requerimiento - haremos un cambio simple al mapa web para acercarnos a un aeropuerto particular cuando el usuario cargue inicialmente el mapa. En su computadora, vaya a la carpeta donde fue exportado el mapa web. Localice la carpetaresources
y abra el archivoqgis2web.js
en un editor de texto.

Localice la línea donde se llama a la función
map.getView().fit()
y agregue el código siguiente después. Esta nueva línea de código instruye al navegador web de centrar el mapa en las coordenadas de Paris. Guarde los cambios en el archivoqgis2web.js
.
map.getView().setCenter(ol.proj.fromLonLat([2.35, 48.85]))

Actualice su navegador y vea que el mapa web cargará con París en el centro. Este es un ejemplo trivial, pero puede ver como puede usar cualquier función disponible en las bibliotecas
OpenLayers
oLeafLet
para personalizar el mapa web.

El mapa exportado reside en su computadora. A pesar de que puede verlo en acción, no es muy útil ya que no puede compartirlo con nadie. Para que otros puedan ver el mapa, necesita cargarlo a un servidor web. Mientras el proceso de carga variará en el tipo de servidor al que tiene acceso - una manera barata y fácil de publicar su mapa en la web sería usar cualquiera de los servicios de almacenamiento público en la nube. Amazon S3 es un servicio popular de almacenamiento. Necesitará registrarse con una cuenta y seguir las instrucciones para crear un bucket. Una vez que el bucket esté creado, puede cargar el contenido de su carpeta exportada al bucket y volverla pública. Aquí yo creé un bucket llamado
qgis-tutorials
y cargué el contenido de mi carpeta exportada a una subcarpeta llamadaqgis2web
. Puede acceder al mapa resultante en http://s3.amazonaws.com/qgis-tutorials/qgis2web/index.html

De forma similar, Google también ofrece un servicio de almacenamiento en la nube llamado Google Cloud Storage. Una vez que haya creado una cuenta y habilite el pago, puede crear un bucket y subir objetos al bucket. Yo creé un bucket y una subcarpeta similar a Amazon y definí la carpeta como pública. El mapa resultante puede ser visto en https://storage.googleapis.com/qgis-tutorials/qgis2web/index.html

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)