Development of the QGIS plugin “SHOGun-Editor” by our intern Jonas Grieb

An internship report from our intern Jonas Grieb:

After completing my Bachelor’s degree in Geography at the University of Bonn last year, where I focused on GIS and geomatics right from the start, I completed an internship at terrestris from May to August. My expectations were to gain a better insight into my professional life and to expand my knowledge and skills in the field of (Web)GIS.

At the end of the internship I can say that these expectations have been fulfilled in every respect. Since terrestris basically works with open source software, I was able to learn a lot in the everyday use of Linux systems, as well as git and other development tools. In addition, I worked on many smaller tasks in which I dealt with the architecture of the in-house GIS solution SHOGun, as well as with web development based on react and the react-geo and OpenLayers libraries. I also had a main task, which was to develop a QGIS plugin as an interface to SHOGun. More information about the plugin can be found below.

At terrestris I found a very positive working atmosphere. So the contact with each other was always friendly and with questions and problems I could turn to all employees. This enabled me to benefit from the company’s many years of experience in developing open source WebGIS systems. In addition, during lunch breaks and at events such as the “Bratwurst, Bier und GIS” summer party, there was the opportunity for nice conversations with employees who have found their way into the “geo world” from all directions, including the employees of the partner company mundialis.

As already mentioned, my main task during my internship was to develop a plugin for the popular and free desktop GIS software QGIS. This plugin will be explained in more detail below. It should serve as an interface to SHOGun. That means, it should give users of SHOGun the possibility to connect QGIS with the web client of SHOGun and to administer it within QGIS.

There are many ways in which users can benefit: QGIS is already installed on the PCs of many users and is often integrated into everyday work processes. With the help of the plugin, layers and their styles can now be published directly in SHOGun without any accidents and do not have to be exported and re-imported. In addition, you can benefit from the detailed styling options of QGIS. With the help of SHOGun, it is also conceivable that users can perform the entire administration of applications and layers in SHOGun from QGIS, where they are already accustomed to the user interface.

To create the plugin, I first had to work my way into the SHOGun web app and the REST interface. Then I started programming the plugin. This is connected to the interface of QGIS and its map view, as well as it addresses the interfaces of SHOGun after corresponding user input via HTTP request.

Like most QGIS plugins, the plugin is written in Python and is based from the GUI on the QT library. This makes it easy to integrate into the QGIS interface. It is already uploaded to the official QGIS plugin repository so that it can be installed at any QGIS workstation. In addition, the source code can be viewed in full at https://github.com/terrestris/qgis-shogun-editor. At the moment the plugin is released in version 0.2, because not all functions are implemented and tested yet. However, it was designed directly to be compatible with both the older Long-Term release of QGIS (2.18) and the new QGIS 3.

The following three video clips illustrate the functionality of the plugin in connection with a local installation of SHOGun.

  1. Install the plugin and connect to SHOGun

  2. Editing SHOGun elements from the QGIS interface

  3. Styling and creation of new layers and applications

Finally I can say that I learned a lot during my internship at terrestris and enjoyed the independent development of the QGIS plugin. I noticed the advantages of open source software: I was able to freely download all the developer tools I needed from the Internet and problems were quickly solved in the appropriate forums of the large community. Because I noticed a bug in the new version of QGIS during my work, which I finally reported to the QGIS developers, I could also actively contribute to the further development of this free GIS software. I would also like to remain active in this community beyond my internship at terrestris. I would like to thank all employees of terrestris for the internship period and can recommend the internship to anyone who is enthusiastic about the development in the open source “geo world”.