QGIS Server es una aplicación de código abierto que proporciona servicios WMS, WFS y WCS. QGIS Server utiliza un proyecto de QGIS como back-end para crear el servicio. Los mismos datos y estilos de QGIS se mostrarán en el servicio WMS. Es por tanto una herramienta muy útil para todos los usuarios de QGIS, pues pueden crear servicios de OGC (Open Geospatial Consortium) directamente desde los datos de su proyecto.
QGIS Server puede servir datos de acuerdo con los protocolos estándar descritos por Open Geospatial Consortium (OGC):
- WMS 1.1.1 y 1.3.0
- WFS 1.0.0 y 1.1.0
- OGC API – Features (WFS3)
- WCS 1.1.1
- WMTS 1.0.0
QGIS Server es una aplicación FastCGI/CGI (Common Gateway Interface) escrito en C++ que trabaja junto con un servidor web (por ejemplo, Apache, Lighttpd). Cuenta con ayuda al complemento Python que permite el desarrollo mas rápido y eficiente y despliegue de nuevas características. Es financiado por la EU project Orchestra, Sany y la ciudad de Uster en Suiza.
Con QGIS Server podemos crear servicios de mapas web (WMS) utilizando las mismas librerías que tiene la aplicación de escritorio QGIS. QGIS Server se integra perfectamente con el SIG de escritorio QGIS.
¿Qué podemos hacer con QGIS Server?
- Crear servicios WMS: publicar en la web tanto las capas como los mapas creados con QGIS. Los mapas web que obtenemos con QGIS Server son iguales que los creados con la aplicación de escritorio QGIS.
- Utilizar una simbolización cartográfica avanzada
- Identificación de las características y visualización de datos de atributos.
- Salidas en PDF.
Los pasos que debemos realizar son básicamente tres:
- Instalar Apache.
- Instalar QGIS Server.
- Añadir el proyecto .gqs en el directorio adecuado.
Instalación de Apache + QGIS Server
Este paso está explicado en detalle en el siguiente artículo:
Instalar QGIS Server en Windows utilizando Xampp
Una vez instalado regresa a esta página y accede a la siguiente url:
http://localhost/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Si todo ha ido bien, deberías ver el documento de capacidades:
Añadir el proyecto .gqs
Aunque podemos crear el proyecto de QGIS en cualquier directorio, es recomendable ubicar el proyecto .qgs en el directorio C:\OSGeo4W\apps\qgis\bin.
Si ponemos el proyecto en este directorio, será servido por defecto sin tener que utilizar el parámetro de mapa opcional).
En nuestro caso hemos creado el proyecto cities.qgs y lo hemos ubicado en el directorio C:\OSGeo4W\apps\qgis\bin
De este modo las peticiones:
http://localhost/qgis/qgis_mapserv.fcgi.exe? SERVICE=WMS& VERSION=1.3.0& REQUEST=GetCapabilities
y
http://localhost/qgis/qgis_mapserv.fcgi.exe? SERVICE=WMS& VERSION=1.3.0& REQUEST=GetCapabilities& map=C:\OSGeo4W\apps\qgis\bin\cities.qgs
son análogas.
Al solicitar de nuevo el documentos de capacidades el XML debería aparecer, esta vez con elementos consultables del proyecto. Podemos solicitar:
- GetMap (veremos un ejemplo más adelante)
- GetPrint (veremos un ejemplo más adelante)
- GetFeatureInfo
- GetLegendGraphic
- GetStyles
En el documento de capacidades también vemos las capas consultables:
La petición GetMap
Ahora vamos a ver en el navegador la capa de ciudades de nuestro proyecto, para mostrar la capa necesitamos una petición GetMap:
http://localhost/qgis/qgis_mapserv.fcgi.exe? SERVICE=WMS& VERSION=1.3.0& SRS=EPSG:4326& REQUEST=GetMap& BBOX=-180,-90,180,90& WIDTH=1000& HEIGHT=500& LAYERS=cities& FORMAT=image/png
En nuestro proyecto de QGIS al menos debemos tener una capa que se denomine cities, de ahí que la variable LAYERS sea igual a cities.
La variable BBOX viene definida por el SRID, en este caso las capas están en el EPSG:4326, es decir el sistema WGS84, cuyas coordenadas máximas en latitud son 90º, -90º y las coordenadas máximas y mínimas de longitud son 180º y -180º.
La petición GetPrint
QGIS Server tiene la capacidad de crear una salida del Diseñador de impresión en formato PDF o de píxel. Las ventanas del Diseñador de impresión del proyecto se utilizan como plantillas. En la solicitud getprint, el cliente tiene la posibilidad de especificar los parámetros de los mapas y etiquetas del diseñador de impresión.
Nuestro proyecto tiene un único diseñador de impresión. En la respuesta del GetCapabilities, se enumeran las posibles plantillas de impresión (ComposerTemplate).
La petición que deberíamos realizar sería (es importante indicar las capas que queremos mostrar):
http://localhost/qgis/qgis_mapserv.fcgi.exe? SERVICE=WMS& REQUEST=GetPrint& TEMPLATE=Mundo& map0:EXTENT=-98,-47,84,75& WIDTH=1467&HEIGHT=729& LAYERS=countries,cities& FORMAT=pdf& DPI=300& TRANSPARENT=true
Y este es el resultado:
La petición GetLegendGraphic
http://localhost/qgis/qgis_mapserv.fcgi.exe?map=C:\OSGeo4W\apps\qgis\bin\cities.qgs&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetLegendGraphic&LAYER=countries&FORMAT=image/png&STYLE=default&SLD_VERSION=1.1.0
La verdad es que trabajar con este servidor es realmente fácil 🙂 y las respuestas obtenidas son iguales que las composiciones creadas con QGIS.
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
He tratado de instalarlo en mi PC que es de 64 bits y no me funciona, hasta el punto 2, todo va bien. La parte del punto 3 no funciona recibo el mensaje Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@local.domain and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Hice el mismo procedimiento en una PC de 32 bits y si funcionó. Me pueden ayudar por favor, estamos usando en mi institución el software QGIS y tambien queremos hacer publicaciones con Qgis server.
He decidido iniciarme definitivamente con este sotware
Muy buenas, quisiera plantearos mi problema.
Al intentar cargar la dirección del WMS de catastro y también de la REDIAM capas de vías pecuarias, me aparece el error «fallo en la descarga de capacidades».
Sin embargo con ortofotos WMS no me ocurre y si carga.
Alguien podría explicarme por qué no me cargan algunos wms.
Saludos y gracias.
Como te va Aurelio gracias por el tutorial, seguí al pie de la letra los pasos y también me presenta el error de Internal Error Server al momento de digitar http://localhost/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities de casualidad alguien ya ha resuelto este paso ?
Muchas gracias por el apoyo y saludos a todos
Diego alonso, ya lo has instalado en linux?
Hola Aurelio muy buenos los tutoriales
una consulta con un error que no puedo solucionar la verdad que no se que es segui el tutorial de instalacion de qgis server al pie de la letra hasta hay todo bien ejecuto localhost:257 y me muestra la pagina principal OSGeo todo bien
pero en el momento de ejecutar en el nabegador http://localhost/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities me aparece internal error lo pongo con localhost solo o con el puerto y nada la verdad no se que es no se a que se debe lo e probado una y otra vez y como soy nuevo en el tema no se me ocurre nada mas reinicio apache y nada sigue igual ojala me pueda ayuda saludos y muchas gracias..
Hola Cristian,
Si has seguido los pasos al pie de la letra (sobre todo instalar la versión de 32 bits y copiar los dos archivos) no debería aparecer el error. Lo único que se me ocurre es que el puerto esté dando problemas. Desde luego la petición en tu caso deber ser http://localhost:257/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities. Saludos
Hola, tengo instalado el qgis 2.8 como instalar el server, quiero subir mis mapas en mi pagina web (tengo un hosting) porfa soy nuevo me pueden ayudar?.
Saludos
Hola Robin, en esta entrada puedes encontrar algunas respuestas: 6 opciones para crear una arquitectura WEB GIS en un servidor
Alguno de sus cursos está completamente orientado a QGIS SERVER?
Hola Juan,
En un principio habíamos pensado incluirlo en el módulo de publicación online, ya que antes utilizabamos QGIS Cloud. Pero incluir QGIS Server es un poco más avanzado, así que lo incluiremos en el curso de QGIS avanzado que estamos preparando…
Tengo un problema al momento de conectar a través de WMS, al intentar cargarlo al cliente SIG, me sale el siguiente error:
qgis-bin
No se pudo entender la respuesta. El proveedor wms dijo:
Falló la descarga de capacidades: Error downloading http://localhost/qgis/qgis_mapserv.fcgi.exe?VERSION=1.3.0&SERVICE=WMS&REQUEST=GetCapabilities – server replied: Not Found
Hola Juan,
Asegúrate de tener instalado Apache y de realizar el ajuste de archivos especificado. Saludos!
Hay posibilidad de que se porque estoy conectado a través de un proxy?
Al trabajar en local yo creo que no. ¿Qué te aparece al acceder a localhost?
Me aparece lo de OsGeo, todo funciona perfecto, los links todo, pero no puedo conectar con QGIS, me aparece el error q comento al principio.
He seguido tu buen tutorial y el archivo de capacidades me sale bien…. Verás el mapa que he usado de prueba y que he hecho en QGIS tiene varias capas wms; me interesaría saber cómo puedo publicar el wms resultante en algun servidor para que sirva para todo el mundo… porque así en local solo sirve en mi pc y si está Apache corriendo, ¿correcto?
Muchísimas gracias.
Hola Javier,
Tienes dos opciones:
a) contratar un servidor dedicado o un VPS del que seas administrador y montar tu arquitectura en él o
b) Crear tu propio servidor web. Debes configurar la red para modificar localhost por la IP interna del servidor web y poner esa IP pública para que sea accesible desde una red externa. Deberás redireccionar las peticiones que lleguen a la IP pública a la IP de tu servidor.
Saludos!
Muchas gracias Aurelio…. Creo que eso me supera de momento; si QGISCloud me funcionara bien me apañaba con eso, pero es un cachondeo… unas veces puedo ver los mapas y otras no, no le pillo el truquillo (a veces se ve el mapa con la dirección que te da para dispositivos móviles pero no en el navegador… Me tiene loco, eso si que me salvaría).
Por otro lado comentarte que trasteando con QGIS server me he dado cuenta de que no hace falta copiar esas librerias que mencionas en el tutorial: simplemente guardando el proyecto qgs en la misma carpeta donde está el archivo qgis_mapserv.fcgi.exe y teniendo apache corriendo ya se consigue el documento de capacidades. Y haciendo tantas carpetas como proyectos queramos guardar e introduciendo en cada una de ellas una copia del archivo qgis_mapserv.fcgi.exe sólo tendríamos que cambiar en la ruta de acceso el nombre de la carpeta (donde he puesto las xxxxxx):
http://localhost/qgis/xxxxxx/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Un saludo!!!
Gracias, muy buen tutorial.
Tengo una consulta sobre la opción a)
[ a) contratar un servidor dedicado o un VPS del que seas administrador y montar tu arquitectura en él ].
¿Podrías por favor qué tipo de servidor (hosting) necesitaría y qué arquitectura sería para poder subir mis mapas?
En otras palabras qué necesito tener o buscar en un servidor para poder colocar mis propios mapas y que funcione como un WMS?
O si conoces algún material con el cual pudiera aprender a hacerlo.
Gracias.
Hola Igor,
Necesitas un servidor dedicado no administrado, de tal forma que seas tu quien lo administra con privilegios de root, configurando y utilizando el software que prefieres. Instalas QGIS Server y Apache en tu host. Puedes seguir el tutorial para ello (en este tutorial se instala sobre Windows). Pero bueno la arquitectura la eliges tú, quizá en ligar de QGIs Server prefieras PostGIS + GeoServer + OpenLayers…
Saludos!
A mi me ocurre lo mismo, no veo el Apache en la ventana del Select Packages y tampoco me lo instala.
Hola Leticia,
¿Estás realizando la instalación del OSGeo4W Network Installer? No utilices el instalador independiente de QGIS!
En la ventana de instalación selecciona la opción Advanced Install
Saludos!
Hola,
Cuando instalo el paquete de QGIS-SERVER, debería instalarse automáticamente Apache Web Server, no?
A mi no me aparece siquiera en la pestaña Web de Select Packages.
Alguna idea?
Gracias!
Hola Laura,
Asegúrate de ejecutar el OSGeo4W Network Installer, no el instalador independiente de QGIS!
En la ventana de instalación selecciona la opción Advanced Install y en la ventana siguiente Install from Internet.
Un saludo,
Aurelio
Buenas
Todo esto que explicas es válido si el sistema operativo es Windows 7 64 bits?
Gracias
Hola Miguel,
Perfectamente válido y funcional.
Saludos
Perfecto gracias por vuestra ayuda!! Ahora si escribierais una entrada sobre Mapnik seria perfectoo!!! Lo acabo de instalar pero no se muy bien como va. Saludos!!
Hola Fran,
Gracias, me alegro de que te guste. Me apunto lo de Mapnik!, aunque tengo previsto escribir antes un artículo sobre Tilemill…
Un saludo!
Muchas gracias, llevo un tiempo intentando dar un salto a mi nivel de GIS y estoy aprendiendo mucho en esta web!