+ All Categories
Home > Documents > PostGIS und QGIS Vector Tiles mit - WhereGroup

PostGIS und QGIS Vector Tiles mit - WhereGroup

Date post: 16-Oct-2021
Category:
Upload: others
View: 12 times
Download: 0 times
Share this document with a friend
46
Vector Tiles mit PostGIS und QGIS 28. Januar 2021 | Astrid Emde | Aufgepasst: Wieviele Tiere sind in den Folien versteckt? Mitzählen & ein GDAL-T-Shirt gewinnen. Die erste richtige Antwort im Chat gewinnt. FOSSGIS Update 2021 Online 1 / 46
Transcript
Page 1: PostGIS und QGIS Vector Tiles mit - WhereGroup

Vector Tiles mitPostGIS und QGIS

28. Januar 2021 | Astrid Emde |

Aufgepasst: Wieviele Tiere sind in den Folien versteckt? Mitzählen & ein GDAL-T-Shirt gewinnen.

Die erste richtige Antwort im Chat gewinnt.

FOSSGIS Update 2021 Online

1 / 46

Page 2: PostGIS und QGIS Vector Tiles mit - WhereGroup

Astrid EmdeWhereGroup Bonn seit 2002, GIS-Consultant

FOSS-Academy-Schulungen

PostgreSQL/PostGIS, MapServer, GeoServer, QGIS,

QGIS Server, Mapbender, PostNAS-Suite

OSGeo Board, FOSSGIS e.V., Mapbender PSC,

OSGeoLive PSC, QGIS-DE

[email protected]

2 / 46

Page 3: PostGIS und QGIS Vector Tiles mit - WhereGroup

40+ Mitarbeiter an 3 Standorten in Bonn, Berlin u.

Freiburg - Projektleiter:innen, Consultants,

Trainer:innen, Softwareentwickler:innen

Dienstleister in den Bereichen WebGIS, GDI, Kataster,

Datenbanken mit freier Software

Schulungen, Infoveranstaltungen, Konferenzen

Unterstützer von OSGeo und FOSSGIS

https://wheregroup.com

https://fossacademy.com    

3 / 46

Page 4: PostGIS und QGIS Vector Tiles mit - WhereGroup

OSGeoLiveEinfach mit OSGeoLive ausprobieren

https://live.osgeo.org (Download Version 14)

4 / 46

Page 5: PostGIS und QGIS Vector Tiles mit - WhereGroup

Vector Tiles allgemein

5 / 46

Page 6: PostGIS und QGIS Vector Tiles mit - WhereGroup

Was sind Vector TilesQuadratische Kacheln

MVT Standard

Auslieferung in EPSG:3857 - WGS 84/Pseudo-Mercator

Feature werden als Vektoren .pbf an den Client übergegeben

Client übernimmt das Rendering

http://127.0.0.1:7800/public.buildings_a/{z}/{x}/{y}.pbf

https://docs.mapbox.com/vector-tiles/specification/

6 / 46

Page 7: PostGIS und QGIS Vector Tiles mit - WhereGroup

Warum Vector Tiles?Schnell, wenig Speicher, weniger Bandbreite

Attraktiv für den mobilen Einsatz

Gestaltung im Client ist möglich

Verschiedene Styles können leicht angewendet werden

Drehen

Wechsel der Sprache

Darstellung von Höhen

Filtern im Client

Attributinformation liegt im Client vor

Offline nutzbar

7 / 46

Page 8: PostGIS und QGIS Vector Tiles mit - WhereGroup

Anwendungen mit Vector TilesWhereGroup TileServer

https://wms.wheregroup.com/tileserver/

8 / 46

Page 9: PostGIS und QGIS Vector Tiles mit - WhereGroup

Anwendungen mit Vector TilesAdV Smart Mapping (03/2020 veröffentlicht)

https://adv-smart.de/

9 / 46

Page 13: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileserv"PostGIS only Tile Server in Go"

Paul Ramsey

Firma Crunchy Data

Go Project

13 / 46

Page 14: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileserv"PostGIS only Tile Server in Go"

Vector Tile Server

GIS wird nicht benötigt!

Leichtgewichtig & schnell

Zustandslos

http-Zugriff auf die PostgreSQL-Datenbank

Zwischenschicht zwischen Datenbank & Web Mapping Applikation

Aktuelle Version v1.0.5 12/2020

14 / 46

Page 15: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservPostGIS ony Tile Server in Go

PostGIS Mapbox Vector Tiles über Funktion seit Version 2.4 (09/2017)

Erste Lösung von Paul Ramsey in Python entwickelt als Proof of Concept

Erste Version von pg_tileserv

Sehr gute Dokumentation

Gehört zur Reihe “PostGIS for the Web” - kurz “PostGIS FTW” (nicht zu verwechseln mit )

Voraussetzung PostgreSQL >= 9.5 PostGIS >= 2.4

   

ST_AsMVT

v0.1 (01/2020)

https://access.crunchydata.com/documentation/pg_tileserv/latest/

PostgreSQL FDW"

15 / 46

Page 16: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservAutomatische Konfiguration über Datenbankberechtigungen

Einbindung von Funktions-Layern

Client zur Datenvisualisierung

Metadaten - menschen- und maschinenlesbar

16 / 46

Page 17: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservInstallation

Leicht zu installieren

für Windows, Linux, OSX, Docker

Ablage im beliebigen Verzeichnis

Nutzbar in verschiedenen Architekturen: Desktop - Container - Cloud Kubernetes

Downloadpaket

@ pg_tilserv Dokumentation

17 / 46

Page 18: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservStart des Servers

export DATABASE_URL=postgresql://username:password@host/dbname ./pg_tileserv

Erreichbar über http://localhost:7800/

18 / 46

Page 19: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservStart mehrerer Server parallel

Konfiguration über toml-Datei -

./pg_tileserv --config /opt/pg_tileserv/pg_tileserv_freiburg.toml

Dokumentation

19 / 46

Page 20: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservtoml-Datei zur Konfiguration

# pg_tileserv # Database connection# postgresql://username:password@host/dbname DbConnection = "postgresql://tileserv_reader:abcdefg@localhost/freiburg" # Close pooled connections after this interval# 1d, 1h, 1m, 1s, see https://golang.org/pkg/time/#ParseDuration# DbPoolMaxConnLifeTime = "1h" # Hold no more than this number of connections in the database pool# DbPoolMaxConns = 4 # Cancel a tile request if a tile can't be rendered in this time (seconds)# DbTimeout = 10 # Look to read html templates from this directory# AssetsPath = "/usr/share/pg_tileserv/assets"

20 / 46

Page 21: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservClient zur Datenvisualisierung

21 / 46

Page 22: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservAnzeige Name | Beschreibung | Attribute

22 / 46

Page 23: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservAnzeige Name | Beschreibung | Attribute

23 / 46

Page 24: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservAnzeige Name | Beschreibung | Attribute

24 / 46

Page 25: PostGIS und QGIS Vector Tiles mit - WhereGroup

Das war menschenlesbar.

Nun kommt maschinenlesbar.

25 / 46

Page 26: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservÜbersichthttp://localhost:7800/index.json

26 / 46

Page 27: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservDetails"detailurl" : http://0.0.0.0:7800/public.buildings_a.json

id entspricht [schema].[tabelle]

name entspricht Tabellenname

tileurl: http://0.0.0.0:7800/public.buildings_a/{z}/{x}/{y}.pbf

27 / 46

Page 28: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservFilter können im Aufruf übergeben werden

https://access.crunchydata.com/documentation/pg_tileserv/1.0.3/usage/table-layers/

Defaultwerte überschreiben (Defaults siehe auch poml-Datei)

http://localhost:7800/public.ne_50m_admin_0_countries/{z}/{x}/{y}.pbf?limit=100000&properties=name,long_name

?properties=attr1,attr2 ?limit=1000 ?resolution=4096 ?buffer=256

28 / 46

Page 29: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservNutzung von Funktionen als Layer

Sehr mächtig

Versteckt die Datenquelle vor dem Server

Optionaler Parameter kann im Aufruf übergeben werden

Funktion kann in jedem Schema sein, muss aber MVT bytea zurückgeben

Tiles werden in der Funktion selbst erstellt und zurückgegeben

FedGeo Day 2020:

Dokumentationpg_tileserv function layer

pg_tilserv / pg_featureserv mit Adam Timm

29 / 46

Page 30: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservNutzung von Funktionen als Layerpg_tileserv - Advanced Function Layer

30 / 46

Page 31: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservNutzung von Funktionen als Layerpg_tileserv - Advanced Function Layer

31 / 46

Page 32: PostGIS und QGIS Vector Tiles mit - WhereGroup

pg_tileservNutzung von Funktionen als Layerpg_tileserv - Advanced Function Layer

32 / 46

Page 33: PostGIS und QGIS Vector Tiles mit - WhereGroup

QGIS & pg_tileservVector Tiles über den Browser

33 / 46

Page 34: PostGIS und QGIS Vector Tiles mit - WhereGroup

QGIS & pg_tileservVector Tiles über den Browser

34 / 46

Page 35: PostGIS und QGIS Vector Tiles mit - WhereGroup

QGIS & pg_tileservF12 - Diagnose-/Entwicklerwerkzeuge

35 / 46

Page 36: PostGIS und QGIS Vector Tiles mit - WhereGroup

QGIS & pg_tileservStilanpassungen

36 / 46

Page 37: PostGIS und QGIS Vector Tiles mit - WhereGroup

QGIS & pg_tileservZugriff auf die Attribute

37 / 46

Page 38: PostGIS und QGIS Vector Tiles mit - WhereGroup

OSM Daten importierenDownload & Extrakt

#osmium 1.11.1 sudo apt install osmium-tool #Download OSM-Daten wget https://download.geofabrik.de/europe/germany/baden-wuerttemberg/freiburg-reg # Extraktion von Freiburg osmium extract -b 7.565,47.814,8.096,48.189 /data/demo/freiburg-regbez-latest.osm

38 / 46

Page 39: PostGIS und QGIS Vector Tiles mit - WhereGroup

OSM Daten importierenBenutzer osmuser & Datenbank OSM anlegen

sudo -u postgres createuser osmuser -U postgres sudo -u postgres createdb --encoding=UTF8 --owner=osmuser osm sudo -u postgres psql osm --command='CREATE EXTENSION postgis;' sudo -u postgres psql osm --command='CREATE EXTENSION hstore;'

39 / 46

Page 40: PostGIS und QGIS Vector Tiles mit - WhereGroup

OSM Daten importierenosm2pgsql (ab Version >= 1.3.0 mit )FLEX Outputhttps://osm2pgsql.org/

Import der Daten cd /data/demo osm2pgsql -d osm -U postgres -H localhost -O flex -S streets.lua freiburg.osm.pbf 2021-01-27 23:53:22 osm2pgsql version 1.4.0 (1.4.0) 2021-01-27 23:53:22 Database version: 12.5 (Ubuntu 12.5-1.pgdg20.04+1) 2021-01-27 23:53:22 Node-cache: cache=800MB, maxblocks=12800*65536, allocation mProcessing: Node(3126k 3126.0k/s) Way(477k 238.50k/s) Relation(10327 10327.0/s) 2021-01-27 23:53:25 Node stats: total(3126931), max(8291671882) in 1s 2021-01-27 23:53:25 Way stats: total(477669), max(892076599) in 2s 2021-01-27 23:53:25 Relation stats: total(10327), max(12133805) in 0s 2021-01-27 23:53:25 No marked ways (Skipping stage 2). 2021-01-27 23:53:25 node cache: stored: 3126931(100.00%), storage efficiency: 492021-01-27 23:53:25 Clustering table 'streets' by geometry... 2021-01-27 23:53:26 Creating geometry index on table 'streets'... 2021-01-27 23:53:26 Analyzing table 'streets'... 2021-01-27 23:53:26 All postprocessing on table 'streets' done in 1s. 2021 01 27 23:53:26 Osm2pgsql took 4s overall

40 / 46

Page 41: PostGIS und QGIS Vector Tiles mit - WhereGroup

QGIS & pg_tileservZugriff auf die Attribute

41 / 46

Page 42: PostGIS und QGIS Vector Tiles mit - WhereGroup

Varnish CacheCaching HTTP Reverse Proxy

https://varnish-cache.org/docs/trunk/index.html

sudo apt-get install varnish sudo service varnish status vim /etc/varnish/default.vcl vcl 4.0; backend default { .host = "127.0.0.1"; .port = "7800"; # pg_tilserv port }

http://127.0.0.1:6081/

42 / 46

Page 43: PostGIS und QGIS Vector Tiles mit - WhereGroup

Zusammengefasst pg_tileservEinfach, flexibel & schnell

Leicht installierbar & konfigurierbar

Leicht skalierbar

43 / 46

Page 45: PostGIS und QGIS Vector Tiles mit - WhereGroup

Fortsetzung folgt voraussichtlich auf der FOSSGIS 2021pg_featureserv

Serie “PostGIS for the Web” (aka “PostGIS FTW”)

ebenfalls Teil der Crunchy Data Entwicklungen

leichtgewichtiger RESTful Geospatial Feature Server

Implementiert den OGC API Feature Standard

Liefert JSON and GeoJSON

Dokumentation pg_featureserv

FOSSGIS-Konferenz 2021

45 / 46

Page 46: PostGIS und QGIS Vector Tiles mit - WhereGroup

Vielen Dank

Astrid Emde | WhereGroup | [email protected]

FOSDEM 2021 Online 6.-7. Februar 2021

OGC OSGeo ASF Code Sprint 2021 17.-19. Februar 2021

Get your GDAL T-Shirt

Become a Sponsor of OSGeo

46 / 46


Recommended