Qgis-MapServer, an WYSIWYG open source WMS server
At 3Liz, Qgis is our favorite desktop GIS application. We have adopted it for its perfs and simplicity for a couple of years now. The project has a very reactive and friendly community. Furthermore, Qgis can be easily extended by developping python plugins, which helps us developping spatial tools for our customers. Qgis is now a reliable and serious alternative to proprietary GIS softwares.
During the last FOSS4G at Barcelona, young open source map server projects, as Mapnik aka PaleoServer or Qgis-Mapserver, have participated to the WMS server benchmark initiated by OSGEO. During this 2010 WMS Shootout, a dozen projects have evaluated their performances. Qgis-Mapserver was one of them. It was a great opportunity to spread the word inside the open source GIS community.
The Qgis-Mapserver team has the simple yet very interesting approach to create a map server based on the Qgis desktop rendering engine. The tool delivers a web map service (WMS) from a map project created with the Qgis desktop version. Qgis-Mapserver has been integrated in the development trunk from Qgis 1.6, published last saturday, november the 27th.
One big asset of Qgis-Mapserver is the way maps are created. Just use Qgis Desktop as usual to configure all the map caracteristics, such as symboloy, labbeling, scales. Compared to the manual edition of config files for Mapserver or Mapnik, this part is a real piece of cake : what you see is what you get !
Once your Qgis project has been set, you just need to copy the project file (*.qgs) from your computer to your server, and the WMS is ready ! Another good news for european people is that Qgis-Mapserver is WMS 1.3 standard compliant, which is compatible with the INSPIRE European Directive.
Here are the steps we followed:
- Download OSM data in Shapefile format of the french Languedoc-Roussilon region from GeoFabrik website
- Load the layers natural, roads, points, places, railways, waterways into Qgis 1.6 desktop version
- Configure the Qgis project, such as projection (EPSG:4326)
- Configure the layers : symbology, labels, scales
- Save the Qgis project to a local file
- Install and configure Qgis-Mapserver on an Ubuntu server
- Copy the project file and the shapefiles to the server
- Check the WMS service by loading the WMS url into our Qgis Desktop, which allows comparing the local and WMS rendering
- Create an HTML page and configure OpenLayers to use the WMS service
- Install and configure TileCache to speed up the tiles delivery by loading all the layers into one and pre-generate the first zoom level.
Only 3 hours were needed to achive this job, although it was the first time we worked with Qgis-Mapserver. The WYSIWIG layer configuration in Qgis desktop is an awesome step forward ! The layer rendering is also exactly the same in Qgis and in our sample demo.
Some comments :
- The new labelling engine is very interesting, as it allows to display curved labels along linestrings. However, It may slowthe whole rendering process a bit . We have decreased the priority to 1 to increase the perfs.
- The caching with TileCache has been as simple with Qgis-Mapserver as with the other WMS servers.
Qgis-Mapserver is a young but very promising project, with a huge potential. The very strong integration with the desktop version extends the creation of web maps to non specialists, and the project can benefits to the large community settled around Qgis.
You can find more information about the installtion and configuration here :
- Offcial Website : http://karlinapp.ethz.ch/qgis_wms/documentation/index.html
- Linfiniti Blog : http://linfiniti.com/2010/08/qgis-mapserver-a-wms-server-for-the-masses/
About the performances :
- the WMS shootout protocol is available here : http://wiki.osgeo.org/wiki/Benchmarking_2010
- The detailed results : http://www.slideshare.net/gatewaygeomatics.com/wms-performance-shootout-2010
- Reading the articles about the shootout, it seems the QgisMapserver team missed time to perform all the tests.