GeoNode Intro & Demo
Cristiano Giovando - Global Facility for Disaster Reduction and Recovery, World Bank
Paolo Corti - Center for Geographic Analysis, Harvard University
Dynamic Mapping of Secondary Cities Symposium
Center of Geographic Analysis, Harvard University, June 14-15, 2016
History
Initially founded by GFDRR and World Bank, and developed by Open Plans
● 11/2010: GeoNode 1.0
● 02/2012: GeoNode 1.1
● 10/2012: GeoNode 1.2
● 04/2014: GeoNode 2.0
● 11/2015: GeoNode 2.4
Central America
Probabilistic Risk
Assessment
(CAPRA)
Who is using it?
● World Bank
● United Nations
● European Commission
● U.S. Department of State
● Several universities (including CGA at Harvard for
WorldMap!)
● Many local government offices and agencies
Community
● 100+ contributors
● 300+ open tickets, 1000+ closed
● 1000+ pull requests
● Almost 400 mailing list subscribers
● Yearly GeoNode code sprints
○ 2015 November in New Orleans (US) at Boundless and Turin (IT) at
ITHACA
○ 2015 February in Venice (IT) at ISMAR
○ 2014 April in Rome (IT) at UN WFP
○ 2012 February in Cambridge (US) at CGA in Harvard University!
○ 2011 May in Washington (US) at World Bank
Roadmap
Improvement by other GeoNode developers:
● 2.5+ GeoNode API improvements
● 2.5+ Support for additional web map engines (QGIS Server,
MapServer, Mapnik)
Roadmap: from WorldMap to GeoNode
Some features will be ported from WorldMap GeoNode to
mainstream GeoNode (version 2.5):
● 2.5 Classify by attribute styler
● 2.5 Map Notes
● 2.5 Map snapshots/revisions
● 2.5 Create layer capability
● 2.5 Gazetteer from layers
Roadmap: from WorldMap to GeoNode
Some features will be ported from WorldMap GeoNode to mainstream
GeoNode:
● Datatables (table joins, lat/lon csv file upload)
● 2.5+ Map service registry to support search and discovery across
distributed GeoNode systems and across any system which contains OGC
or Esri services (HHypermap)
● 2.5+ Feature Search
● 2.5+ a big data, real time geo visualization system
Make sure to follow the talk about WorldMap by Ben Lewis from CGA later
today!
GeoNode Stack
● Python, Django
● GeoServer
● PostgreSQL/PostGIS
● Pycsw or GeoNetwork
● GeoExplorer or MapLoom
● Optional: GeoGig, Solr or Elastic Search
All open source!
GeoNode Stack: Django
Django is a high-level Python Web framework that encourages rapid development and
clean, pragmatic design. Built by experienced developers, it takes care of much of the
hassle of Web development, so you can focus on writing your app without needing to
reinvent the wheel. It’s free and open source.
GeoNode Stack: GeoServer
● An open source web mapping engine
● Implements a number of OGC standards
○ WMS
○ WFS/WFS-T
○ WCS
○ WMTS (with GeoWebCache)
○ WPS
● Exposes a REST API
GeoNode Stack: PostgreSQL/PostGIS
PostGIS is a spatial database extender for
PostgreSQL object-relational database
SELECT city.name
FROM city, country
WHERE ST_Contains(city.geom, country.
geom)
AND country.name = 'United States';
GeoNode Stack: pycsw
● A metadata publishing and discovery engine written in
Python
● OGC CSW reference implementation
● It is possible to use GeoNetwork as an alternative
GeoNode Stack: GeoExplorer
● It is the default mapping client in GeoNode
● Based on ExtJS, GeoExt and OpenLayers 2
● It enables feature such as data editing, style editor, map query, map print
GeoNode Stack: MapLoom (optional)
● Can be used in place of GeoExplorer
● Based on OpenLayers 3, Angular and Bootstrap
● Enables GeoGig integration for feature versioning
GeoNode Stack: GeoGig (optional)
● Tracks change to data
● History of features
● Revert a feature to its old version
● Integrated in GeoNode with the MapLoom client
● Already used in many GeoNode instance created for natural
disasters (ex response to Typhoon Yolanda in Philippines)
GeoNode Stack: Search Engine (optional)
● It is possible to improve the search features of GeoNode with
a dedicated search engine
● Two alternatives, both based on Lucene
○ Apache Solr (used in WorldMap)
○ Elasticsearch
Demo
● Create a new layer from a shapefile
● Create a map adding the layer and some remote datasets
● Style the layer using GeoExplorer
● Edit the layer with GeoExplorer and WFS-T
● Define permissions on the layer
● Update metadata
● Load a layer in desktop GIS