malawi atlas...2019/03/12  · openlayer 2 → openlayers 4, aktuell ist ol5 von 2 auf 3 großer...

42
Malawi Atlas Jakob Miksch FOSSGIS-Konferenz 2019

Upload: others

Post on 03-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

Malawi Atlas

Jakob MikschFOSSGIS-Konferenz 2019

Page 2: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

2Jakob Miksch

Jakob [email protected]

Wissenschaftlicher Mitarbeiter - Z_GIS

OSGeo Charter Member

Maptime Salzburg

Geo-AnwendungenPostGIS, SQL, Python, R, Java, Javascript,

OpenLayers, Web, Android, QGIS, Bash, GDAL/OGR, OpenStreetMap, Routen-Planung,

GeoServer, Spatial Analysis, . . .

Page 3: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

3Jakob Miksch

Universität Salzburg: 18.000 Studierende, 3.000 MA

Z_GIS

~85 MA, ~80% drittmittelfinanziert

MSc Applied Geoinformatics: ~35 Studierende jährlich

PhD GIScience: ~45 DoktorandInnen

Page 4: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

4Jakob Miksch

Z_GIS Forschung

Page 5: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

5Jakob Miksch

2014 2019

https://github.com/zgis/malawi_atlas_public

Page 6: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

6Jakob Miksch

Architektur

Page 7: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

7Jakob Miksch

Demo

Page 8: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

8Jakob Miksch

PostgreSQL + PostGIS

Page 9: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

9Jakob Miksch

PostGIS

Page 10: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

10Jakob Miksch

Benennung

nsanje.ngo_mapping_ta_summaries_coopi_2018

Gebiet (=Schema)

grobe Bezeichnung

genaue Bezeichnung

Quelle

Jahr

Page 11: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

11Jakob Miksch

Page 12: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

12Jakob Miksch

Ext JS

Page 13: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

13Jakob Miksch

OpenLayers + GeoExt

Page 14: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

14Jakob Miksch

Diagramme

Page 15: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

15Jakob Miksch

Druck-Funktion

Page 16: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

16Jakob Miksch

Page 17: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

17Jakob Miksch

Upload von Daten

Page 18: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

18Jakob Miksch FRONTEND

BACKEND

deegree

GeoServer

QGIS Server

MapServer

Geospatial Data Server

pyCSW

GeoNetwork

GeoServer CSW

GeoNode

Metadata Catalog

Vector Storage

GeoPackage

PostgreSQL

MariaDB

Raster Storage

GeoPackage

PostgreSQL

GeoTIFF

+Map Library

Webframework

Leaflet

OpenLayers

Angular

React Vue.js

Ext JS

MapFish Mapbender

MapStore GeoMoose

Custom Stack Pre-Bundled Stack

Pylons

Ext JS

OpenLayers

GeoExt

React

OpenLayers

Leaflet

React

OpenLayers

Symfony

JQuery

OpenLayers

Web Feature Service (WFS)

Web Map Service ( WMS )

Catalog Service for the WebAPI(CSW)

Page 19: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

19Jakob Miksch

FRONTEND

BACKEND

deegree

GeoServer

QGIS Server

MapServer

Geospatial Data Server

pyCSW

GeoNetwork

GeoServer CSW

GeoNode

Metadata Catalog

Vector Storage

GeoPackage

PostgreSQL

MariaDB

Raster Storage

GeoPackage

PostgreSQL

GeoTIFF

+Map Library

Webframework

Leaflet

OpenLayers

Angular

React Vue.js

Ext JS

MapFish Mapbender

MapStore GeoMoose

Custom Stack Pre-Bundled Stack

Pylons

Ext JS

OpenLayers

GeoExt

React

OpenLayers

Leaflet

React

OpenLayers

Symfony

JQuery

OpenLayers

Web Feature Service (WFS)

Web Map Service ( WMS )

Catalog Service for the WebAPI(CSW)

Page 20: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

20Jakob Miksch FRONTEND

BACKEND

deegree

GeoServer

QGIS Server

MapServer

Geospatial Data Server

pyCSW

GeoNetwork

GeoServer CSW

GeoNode

Metadata Catalog

Vector Storage

GeoPackage

PostgreSQL

MariaDB

Raster Storage

GeoPackage

PostgreSQL

GeoTIFF

+Map Library

Webframework

Leaflet

OpenLayers

Angular

React Vue.js

Ext JS

MapFish Mapbender

MapStore GeoMoose

Custom Stack Pre-Bundled Stack

Pylons

Ext JS

OpenLayers

GeoExt

React

OpenLayers

Leaflet

React

OpenLayers

Symfony

JQuery

OpenLayers

Web Feature Service (WFS)

Web Map Service ( WMS )

Catalog Service for the WebAPI(CSW)

Page 21: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

21Jakob Miksch

Malawi Atlas

Page 22: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

Malawi Atlas

Jakob MikschFOSSGIS-Konferenz 2019

● Source code ist offen● Kooperation mit COOPI und Concern Worldwide● Neu-Entwicklung eines 5 Jahre alten Portals● Bericht über verwendete Technologien● Ausblick auf Alternative Technologien

Page 23: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

2Jakob Miksch

Jakob [email protected]

Wissenschaftlicher Mitarbeiter - Z_GIS

OSGeo Charter Member

Maptime Salzburg

Geo-AnwendungenPostGIS, SQL, Python, R, Java, Javascript,

OpenLayers, Web, Android, QGIS, Bash, GDAL/OGR, OpenStreetMap, Routen-Planung,

GeoServer, Spatial Analysis, . . .

● Wissenschaftlicher Mitarbeiter am Z_GIS● Programmiert hauptsächlich● Maptime Salzburg

Page 24: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

3Jakob Miksch

Universität Salzburg: 18.000 Studierende, 3.000 MA

Z_GIS

~85 MA, ~80% drittmittelfinanziert

MSc Applied Geoinformatics: ~35 Studierende jährlich

PhD GIScience: ~45 DoktorandInnen

Page 25: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

4Jakob Miksch

Z_GIS Forschung

● GIScience Lab – meine Arbeitgruppe● ISI - Kooperation

Page 26: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

5Jakob Miksch

2014 2019

https://github.com/zgis/malawi_atlas_public

● War eine Arbeit für eine andere Forschungsgruppe● GUI hat sich nur wenig verändert● Das meiste ist im Hintergrund passiert

● Code strukturierter● Namen ordentlicher● Update der Software und Libraries

Page 27: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

6Jakob Miksch

Architektur

● Alte und neue Architektur ist gleich● Klassische Kombination PostGIS+GeoServer● Haben überlegt was anderes zu nehmen, doch

mehr dazu später● Um das Upgrade leichter zu machen, haben wir die

selbe Technolgie gewählt

Page 28: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

7Jakob Miksch

Demo

Page 29: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

8Jakob Miksch

PostgreSQL + PostGIS

● PostGIS ist eine Erweiterung von PostgreSQL● Sehr mächtige Datenbank● Speziell für räumliche Funktionen●

Page 30: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

9Jakob Miksch

PostGIS

Bennenung der Tables sehr wichtig> 100 Tables waren uneinheitlich benannt

Page 31: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

10Jakob Miksch

Benennung

nsanje.ngo_mapping_ta_summaries_coopi_2018

Gebiet (=Schema)

grobe Bezeichnung

genaue Bezeichnung

Quelle

Jahr

● Schemas nach Regionen sortiert● Reine Tabellen ohne Relationen● Benennung wichtig●

Page 32: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

11Jakob Miksch

● Bennenung der Layer und der Styles in GeoServer auch wichtig

● Vektordaten über Postgres● Rasterdaten im Filesystem → Pyramiden bauen ist

wichtig● OpenAerialMap für große Bilder, redirect mit

GeoServer● Styling mit SLD● Eigener Daten-Ordner macht Sinn● Plugins für GeoPackage, Druck, Diagram-

Rendering, ...

Page 33: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

12Jakob Miksch

Ext JS

● Web-Framework● Gute Dokumentation● Wenig Aktivität in Foren● Data Store● Wenn man sich anpasst hat man ein leichtes Leben● Code wird strukturiert in Komponenten● Update von Ext JS 4 → Ext JS 6● Lizenz GPL oder closed source

Page 34: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

13Jakob Miksch

OpenLayers + GeoExt

● OpenLayer 2 → OpenLayers 4, aktuell ist OL5● Von 2 auf 3 großer Sprung → Rewrite● OpenLayers wird für die Kartendarstellung

genommen● GeoExt stellt eine Verbindung zwischen den Ext JS

Data Store her● Zusammenarbeit mit Meggsimum

Page 35: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

14Jakob Miksch

Diagramme

● Diagramme können gut mit ExtJS gemacht werden● Viele Einstellungen● Liest den Ext JS Data Store

Page 36: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

15Jakob Miksch

Druck-Funktion

● GeoServer Print Plugin● Basiert auf MapFish Print Version 2● Aktuell ist MapFish Print 3 (aber komplettes

Rewrite basierend auf Jasper Reports)● Einrichtung nicht ganz trivial, funktioniert aber

zuverlässig ● Komplett im Backend● Ein JSON mit der Konfiguration wird im Frontend

erstellt

Page 37: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

16Jakob Miksch

• Vorher Dokumentation PDF• Mit Sphinx kann man PDF und Website machen• Ermöglicht dynamische Inhalte wie gifs• Dokumenation lässt sich angenehm mit git

versionieren• Schreiben im RST-Format etwas ungewohnt• Etabliert in OpenSource Welt

Page 38: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

17Jakob Miksch

Upload von Daten

● Eher kompliziert● Upload in Postgres mit QGIS● Styling mit QGIS und/oder GeoServer SLD● Layerinfo mit Metadaten in Website Source Code

→ pragmatisch aber hat Nachteile

Page 39: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

18Jakob Miksch FRONTEND

BACKEND

deegree

GeoServer

QGIS Server

MapServer

Geospatial Data Server

pyCSW

GeoNetwork

GeoServer CSW

GeoNode

Metadata Catalog

Vector Storage

GeoPackage

PostgreSQL

MariaDB

Raster Storage

GeoPackage

PostgreSQL

GeoTIFF

+Map Library

Webframework

Leaflet

OpenLayers

Angular

React Vue.js

Ext JS

MapFish Mapbender

MapStore GeoMoose

Custom Stack Pre-Bundled Stack

Pylons

Ext JS

OpenLayers

GeoExt

React

OpenLayers

Leaflet

React

OpenLayers

Symfony

JQuery

OpenLayers

Web Feature Service (WFS)

Web Map Service ( WMS )

Catalog Service for the WebAPI(CSW)

● Gesamt Übersicht● Möglichkeiten Backend und Frontend zu machen● Backend weniger Möglichkeiten● Frontend sehr heterogen

Page 40: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

19Jakob Miksch

FRONTEND

BACKEND

deegree

GeoServer

QGIS Server

MapServer

Geospatial Data Server

pyCSW

GeoNetwork

GeoServer CSW

GeoNode

Metadata Catalog

Vector Storage

GeoPackage

PostgreSQL

MariaDB

Raster Storage

GeoPackage

PostgreSQL

GeoTIFF

+Map Library

Webframework

Leaflet

OpenLayers

Angular

React Vue.js

Ext JS

MapFish Mapbender

MapStore GeoMoose

Custom Stack Pre-Bundled Stack

Pylons

Ext JS

OpenLayers

GeoExt

React

OpenLayers

Leaflet

React

OpenLayers

Symfony

JQuery

OpenLayers

Web Feature Service (WFS)

Web Map Service ( WMS )

Catalog Service for the WebAPI(CSW)

● Vektor: Postgres, MariaDB, MySQL, GeoPackage● Raster: Postgres, GeoPackage, File System● Geodaten Server:

● GeoServer: fast alles Möglich, Java● MapServer: sehr stabil, C++● Deegree: standard-konform● QGIS Server: nicht so verbreitet, Styling der

Daten aber per GUI möglich, Druckvorlagen können per GUI gestaltet werden

● Metadaten: mit bestehenden Programmen machen anstatt per Website

Page 41: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

20Jakob Miksch FRONTEND

BACKEND

deegree

GeoServer

QGIS Server

MapServer

Geospatial Data Server

pyCSW

GeoNetwork

GeoServer CSW

GeoNode

Metadata Catalog

Vector Storage

GeoPackage

PostgreSQL

MariaDB

Raster Storage

GeoPackage

PostgreSQL

GeoTIFF

+Map Library

Webframework

Leaflet

OpenLayers

Angular

React Vue.js

Ext JS

MapFish Mapbender

MapStore GeoMoose

Custom Stack Pre-Bundled Stack

Pylons

Ext JS

OpenLayers

GeoExt

React

OpenLayers

Leaflet

React

OpenLayers

Symfony

JQuery

OpenLayers

Web Feature Service (WFS)

Web Map Service ( WMS )

Catalog Service for the WebAPI(CSW)

Custom Stack:● Alles selber bauen● Hohe Freiheit● Hoher Aufwand der Erstellung und Wartung

Prebundled Stack:● Weniger Aufwand zu installieren● Erweiterungen nur begrenzt möglich● Update mit weniger Aufwand● Man bekommt viel Geschenkt

Page 42: Malawi Atlas...2019/03/12  · OpenLayer 2 → OpenLayers 4, aktuell ist OL5 Von 2 auf 3 großer Sprung → Rewrite OpenLayers wird für die Kartendarstellung genommen GeoExt stellt

21Jakob Miksch

Malawi Atlas