A Flexible Architecture for Web-based GIS Applications using Docker and Graph Databases
Yves Annanias, Daniel Wiegreffe
TL;DR
The paper tackles the challenge of managing highly heterogeneous geospatial data for regional planning by proposing a flexible, Docker-based microservices architecture that separates frontend, backend, and a graph database. It leverages a graph model (Neo4j) to link entities such as projects, people, companies, and documents, enabling efficient cross-data queries via Cypher and supporting incremental data modeling. The system integrates advanced visualization (coordinated maps, heatmap-like aggregation) with document processing (active learning for statement extraction and PDF linking) and rich data sources (weather, sensors, LIDAR via Potree). This architecture enables scalable, extensible web-based GIS workflows for renaturation projects, reducing manual data linkage and facilitating insights across diverse data types. Practical lessons emphasize modularity, data exchange standards, and the value of a unified client entry point for enterprise deployment.
Abstract
Regional planning processes and associated redevelopment projects can be complex due to the vast amount of diverse data involved. However, all of this data shares a common geographical reference, especially in the renaturation of former open-cast mining areas. To ensure safety, it is crucial to maintain a comprehensive overview of the interrelated data and draw accurate conclusions. This requires special tools and can be a very time-consuming process. A geographical information system (GIS) is well-suited for this purpose, but even a GIS has limitations when dealing with multiple data types and sources. Additional tools are often necessary to process and view all the data, which can complicate the planning process. Our paper describes a system architecture that addresses the aforementioned issues and provides a simple, yet flexible tool for these activities. The architecture is based on microservices using Docker and is divided into a backend and a frontend. The backend simplifies and generalizes the integration of different data types, while a graph database is used to link relevant data and reveal potential new relationships between them. Finally, a modern web frontend displays the data and relationships.
