Open Source GIS Servers
What Is A GIS Server?
Several technologies go into supporting the utilization of GIS capabilities over the internet as web services. Through these technologies you can be able to share maps over the internet, access spatial data from different sources as well as do spatial analysis just like you would on your local machine. Such capabilities have led to the emergence of terms like modern GIS and Cloud Native GIS. This Mapscaping Podcast episode https://mapscaping.com/podcast/what-is-modern-gis/ covers some of the features.
The GIS Server listens to spatial data queries, spatial analysis, and map requests from clients’ HTTP requests through the web server and the application server. It then fetches the data required from the Datta Server. The data Server handles all the data (both spatial and non-spatial) in the database.
With GIS Analysis and visualization moving to the Internet there are many GIS web servers out there. Some are free and open source while others are proprietary.
Open Source GIS Servers
This article will focus on open-source GIS servers such as Geoserver, Mapserver, and Qgis Server. The different GIS Servers support the Open Geospatial Consortium (OGC) and the Open Source Geospatial Foundation (OSGeo) set of standards. In this article, we will look at the strengths and weaknesses each GIS Server has over the other. It is, however, worth pointing out that these are modern solutions, and they have all done a great job covering what you need to serve your geodata over the internet. Therefore, the reason you choose one over the other might boil down to personal preference.
QGIS server
QGIS server is an open-source server application written in C++ in 2006. It comes with Python plugin support for fast development and deployment. If you are working with the QGIS Desktop application and you want to deploy your project to the web, the QGIS server would be a low-hanging fruit for you to pick. The QGIS server utilizes the same visualization libraries as the QGIS desktop, the maps published on the web look the same as in the QGIS desktop, and you don’t have to do any visualization changes. Unlike the other GIS servers, QGIS Server uses cartographic rules as a configuration language, both for the server configuration and the user-defined cartographic rules.
On the open standards, it supports the following standard protocols:
- Web Map Service (WMS)
- Web Feature Service (WFS)
- OGC API – Features
- Web Content Service (WCS)
- Web Map Tile Service (WMTS)
For the fast rendering of maps, QGIS Server supports tile caching, where requested map tiles are stored and rendered without having to fetch from the source when requested again.
To carry out server administration functions, the QGIS server relies on third parties applications such as LizMap and QWC2. It does not support 3D rendering on the client side.
It is easy to set up, especially if you are already using a QGIS desktop application. One major weakness when using a QGIS server is that it is slower than Geoserver and Mapserver and therefore might not be suitable for use in production.
Geoserver
Geoserver is an open-source product developed in 2001, using enterprise Java architecture, that allows you to take your geospatial data (shapefiles, special DBMS like post GIS) and publish it to the web. It was aimed at enabling citizens to be involved in government and urban planning decisions. This podcast episode https://mapscaping.com/podcast/geoserver/ highlights the capabilities and features of Geoserver.
It was designed with interoperability in mind and therefore supported most spatial data sources. Geoserver, therefore, supports the following open standards:
- Web Feature Service (WFS)
- Web Map Service (WMS)
- Web Coverage Service (WCS)
- Web Processing Service (WPS)
- Web Map Tile Service (WMTS)
Web Processing Service (WPS), and Web Map Tile Service (WMTS) are however supported through extensions. The challenge with the standards supported through the extensions is that they are community extensions and may lag in support as they are not supported the same way the other official extensions are supported.
To use Geoserver you don’t have to worry about all the technicalities under the hood as it provides a browser-based web administration interface application used to configure all aspects of GeoServer, from adding and publishing data to changing service settings. It also provides API REST for administration.
If you are running Windows Operating System, you should know that a Windows Installer is not provided due to security reasons. Instead, they provide instructions for you to create one for yourself. Geoserver does not support connecting to Esri products such as ESRI online if you want to serve your data on such platforms. Another downside to Geoserver is that it is not cloud-native friendly as it came before cloud-native GIS was a thing. Additionally, it does not support 3D rendering on the client side.
MapServer
According to its official documentation, MapServer is an Open Source platform for publishing spatial data and interactive mapping applications to the web written in C programming language. It is known as one of the fastest GIS servers available out there. For a smooth and fast rendering of maps, Mapserver just like the other GIS servers we have discussed supports tile caching through the MapCache, an Apache module. On top of that, you do not have to worry about map projection as MapServer utilizes the PROJ library to do map projections on the fly.
MapServer has been around for a long time since it was developed in the mid-nineties. It, therefore, supports a wider range of open standards that allow for interoperability. The following standards are supported:
- Web Map Service (WMS)
- Web Feature Service (WFS)
- Web Coverage Service (WCS)
- Geography Markup Language (GML)
- GML Application Schema – Coverages (GMLCOV)
- Web Map Context Documents (WMC)
- Styled Layer Descriptor (SLD)
To check all the standards that are supported go to MapServer’s official documentation (https://mapserver.org/ogc/index.html ). Web Feature Service Transactional (WFS-T) which allows the users to make changes to data in the source database through WFS is the only major standard that is not supported by MapServer.
MapServer functionalities can be customized or extended through the use of the mapscript interface to MapServer generated by SWIG. Additionally, it also supports popular scripting languages and development environments (PHP, Python, Perl, Ruby, Java, .NET).
Other GIS Servers
Here are some more GIS Servers with links to their official documentation; you can explore them on your own:
- Mapnik (Open Source https://mapnik.org/ )
- ArcGIS Server (This is a proprietary option)
- MapGuide ( Open Source https://mapguide.osgeo.org/documentation.html )
- OpenMap (Open source java mapping toolkit http://openmap-java.org/ )
- NASA WorldWind (Foe visualizations of 3D globe, maps, and geographical information. https://worldwind.arc.nasa.gov/ )
Resources:
- https://mapscaping.com/podcast/the-business-of-web-maps/
- https://mapscaping.com/podcast/whitebox-tools-is-the-backend-to-many-frontends/
- https://mapscaping
- https://mapscaping.com/how-to-create-and-host-an-interactive-web-map-with-pytho
- /podcast/building-a-web-based-mapping-tool-into-a-business/
- https://mapscaping.com/best-free-geospatial-tools/
- https://geoserver.org/
- https://mapserver.org/
- https://mapscaping.com/podcast/geoserver/