Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
podcast
Filter by Categories
ArcGIS Pro
GDAL
GeoJson
Map
Python
QGIS
Uncategorized

GeoNode – Open Source Geospatial Content Management System

Luis Bermudez, CEO of GeoSolutions, USA. Luis obtained his Masters, and PhD degrees in Environmental Informatics from Drexel University in Philadelphia. Taking special interest in ontology and information systems, his interests turned to easing the process of combining data from multiple sources. Naturally, this eventually placed him working closely with the Open Geospatial Consortium. He spent time with the OGC as a Compliance Lead, and leading the Innovation Program, furthering the mission of creating united geospatial data standards. Currently, he is the CEO of the flagship GeoSolutions USA, provider of fan favorites such as MapStore, GeoServer, and, you guessed it- GeoNode

What is GeoNode?

GeoNode is an open-source geospatial platform, catalog, and content management system (CMS). The general functionality can be most likened to ArcGIS Online. Users can create filtered searches for their choice of geospatial data, by using keywords, and even filtering locations by selecting a bounding box on a map. Some other search options are by data type, category, or publishing date. Search results will link users to an API that can tend to all, or at least most, of their data downloading/hoarding needs. It allows them to find web mapping services (WMS) and web feature services (WFS) which will ultimately provide the needed end products.

A content management system is different from a data management system in a few ways. A data management system is most similar to a database, and is optimized to only be interacted with by a small number of users. A content management system, however, is more focused on serving the stored content to a dynamic set of users, and allows organizational tools such as groups and roles to enable this. 

The catalog element of GeoNode enables easy browsing of geospatial data. Users can view, and access, individual data products. Each item will have a title, preview thumbnail, and brief description of the related data. These items can be selected and then viewed more interactively thanks to integration with MapStore. 

A key concept here is that GeoNode’s role is presenting this geospatial data as individual layers. It is possible to combine these layers together in order to build a map. You can pull together basemaps, vector layers, and raster layers, as well as documents and images, to create a cohesive product. Maps in GeoNode allow switching of basemaps, location searching, and even pop-ups. 

GeoNode’s Infrastructure

GeoNode is primarily Python and Java based, taking advantage of modern libraries, such as Django. Primarily, however, it relies on taking parts from a variety of other open source applications. These include PostGIS/PostgreSQL, GeoServer, and MapStore. 

Implementing GeoNode in the beginning can be a bit complex, but fear not! There is, no .exe, but there is high quality step-by-step documentation available to guide you through the process of installing the components needed to get GeoNode up and running. You most likely want to go with the basic install, but power users are welcome to follow the advanced install process to better cater to their organization’s needs. Before getting too deep into customization, you should of course be familiar with the aforementioned software components which lend themselves to GeoNode. A great way to get started there is to listen to the relevant episodes linked above. 

GeoNode can be employed by casual users, and developers. The product and its documentation aim for transparency in order to enable the best possible experience for the end users. Casual users will work with a cleaner, more streamlined interface that allows them to add, delete, edit, and update attribute and geometry data. Administrators/developers will of course have deeper access to the individual components of the application allowing them to customize as needed. When customizing, it is important for developers to adhere to the rules in place for creation of plug-ins to avoid any issues. 

What Can GeoNode Do?  

GeoNode’s catalog supports vector, and raster data. Vector data is contained and managed under the hood by PostGIS. Raster files are stored and accessed via folders. Once you locate the data you are looking for, you have a wide variety of download options should you prefer to work locally. These include GeoJSON, Shapefiles, GML, and CSV, with JPEG, PNG, and PDF options for imagery. Layers in GeoNode are also able to store metadata, including the projection used, and notes on the data quality. 

GeoNode provides a rich array of options for administrators that allow them to effectively manage users and content, including roles, and groups. The user roles are administrator, editor, and viewer. The existence of organizations and groups in GeoNode make it super useful for both internal, and external management of data. Administrators and creators can quarantine data products as they develop them, without needing to expose them prematurely. Completed products can be shared with the public, or if they contain sensitive information, can be restricted to internal groups. Also good news for administrators, GeoNode allows a flexible variety of authentication systems for login, including via social networks, such as Facebook and LinkedIn, in addition to OAuth 2.0 supported authentication.

GeoNode also offers GeoStories, which can be most closely compared to Esri’s StoryMaps product, but of course, open source. This means users can combine, maps, images, text, and other files in order to stylistically present content to stakeholders. A neat feature here is that these stories can be packaged with HTML and then shared with other users, allowing them to avoid having to perform any installations of their own. GeoStories, and other applications like it, are handled by Django.

What’s Next For GeoNode?

The team at GeoNode has been busy packing it full of features, and they are not done yet. New styling templates are being developed to add to the existing repertoire, as well as improving legend options, and adding custom control vocabularies and thesauruses to streamline data management processes.  

In terms of changes under the hood, GeoNode is now running off Python 3.7, Django 2.2.16, GeoServer 2.18, and Docker 3.4. Additionally, the integration of a new REST API allows for easier mass administration of users and content, saving time. Another pending update which will save creators even more time, is data validation tools. These will enable the software to run a series of checks on data to ensure that it will work and present smoothly, rather than relying on manual oversight of data quality. 

If you are considering now if GeoNode is right for you, be sure to go ahead and check out their demo, so you can get a feel for things before taking on the implementation process. In the past, GeoNode has proven to be a good fit for organizations or agencies without the resources to put towards a proprietary geospatial solution. Once set up, the lack of licensing fees remain enticing, so feel free to explore to learn how you can use GeoNode to answer your spatial questions.  

Recent Podcasts

About the Author
I'm Daniel O'Donohue, the voice and creator behind The MapScaping Podcast ( A podcast for the geospatial community ). With a professional background as a geospatial specialist, I've spent years harnessing the power of spatial to unravel the complexities of our world, one layer at a time.

Leave a Reply