Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien...
Transcript of Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien...
![Page 1: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/1.jpg)
1
Mapnik Eine Werkzeugsammlung für die Ableitung
von Webkarten aus GIS-Daten
Peter Kunz
Bundesamt für Kartographie und Geodäsie
![Page 2: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/2.jpg)
2
Workshop
Erste Schritte mit Mapnik
OSM-Daten vorbereiten
Postgis-DB erzeugen
OSM-Daten in Postgis-DB importieren und für das Rendern
mit Mapnik vorbereiten
Mit GDAL Schummerung und Höhenlinien berechnen
OSM-Karte rendern
Lokales Kachelarchiv rendern
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 3: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/3.jpg)
3
Mapnik
Bibliothek für das Rendern von Karten
Bekannteste Anwendung:
Hauptkarte (Slippy Map) von Open Street Map (OSM)
Freie Software (Open Source)
Anwendung
− Web-Server = Rendern bei Request
− Desktop = Vorprozessieren von Kacheln
C++ und Python API
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 4: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/4.jpg)
4
Wozu Mapnik?
Nur bedingt geeignet für die Herstellung
herkömmlicher Einzelkarten für den Druck
Hervorragend geeignet für das
Rendern von Kacheln für einen WMTS
![Page 5: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/5.jpg)
5
WMTS mit Kacheln 256 x 256 Pixel
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
256 Pixel
25
6 P
ixe
l
![Page 6: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/6.jpg)
6
Warum gerade Mapnik?
Plattformen PC, Mac, Unix/Linux
Konzept Saubere Trennung von
» Programmierlogik,
» Datenhaltung und
» Kartenaufbau/-gestaltung
Ergebnisse Sehr gute grafische Qualität
Robust Erprobt bei Massendaten
Schnell BRD ca. 14 Tage alle Zoomstufen
Skalierbar Rendern kann auf mehrere Prozesse/
Rechner verteilt werden
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 7: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/7.jpg)
7
Mapnik Datenformate Ein- und Ausgabe
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Ausgabe
AGG-Renderer
PNG 8, 24 und 32 bit/Pixel
JPEG 24 bit/Pixel
TIFF
Cairo-Renderer
SVG
PS
Datenquellen
PostGIS-Datenbanken
ESRI Shapefiles
TIFF Rasterdaten
OSM XML
alle OGR-Vektorformate !!
alle GDAL-Rasterformate !!
![Page 8: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/8.jpg)
8
MAPNIK
Mapnik erzeugt Karten
Postgis
DB1
Postgis
DB2
Shapedatei
Ausgangsdaten Zieldaten
Einzelne Karte
Kachelarchiv Programmierschnittstelle
C++
Python
MAPNIK
Rasterdaten
![Page 9: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/9.jpg)
9
Die wichtigsten Mapnik-Objekte
Map Die Karte
Layer Ein Karte/Map enthält mehrere Layer. Dort wird die
Datenherkunft beschrieben
Style Ein Layer verweist auf die jeweilige Kartengestaltung
Rule Jedes Styleelement enthält mehrere Regeln
Filter Eine Regel gilt ggf. nur für bestimmte Objekte
Scaledenominatoren Jeder Regel gilt nur für einen oder für
mehrere Maßstäbe
Symbolizern In den Regeln werden die eigentlichen
Zeichenanweisungen mithilfe von Symbolizern beschrieben
![Page 10: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/10.jpg)
10
Definition des Kartenaufbaus
im Pythonskript
Pythonskript
Hier erfolgt Festlegung
- der Datenquellen
- des Kartenaufbaus
- der Grafikstile / Kartengestaltung und
- der Programmierlogik für die Erzeugung der Tiles
Daten Programmlogik UND Gestaltung
Rein programmatisch in C++ bzw. Python
![Page 11: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/11.jpg)
11
Reiner Python-Code
für das Rednern einer Karte
# -*- coding: latin-1 -*-
# Import der Mapnik Python bindings
import mapnik2 as mapnik
# Karten-Objekt anlegen
m = mapnik.Map(900,450)
m.background = mapnik.Color('steelblue')
# Style erzeugen
s = mapnik.Style()
# Rule erzeugen
r = mapnik.Rule()
polygon_symbolizer = mapnik.PolygonSymbolizer(mapnik.Color(r=255,g=231,b=88))
r.symbols.append(polygon_symbolizer) # Symbolizer dem Rule-Objekt hinzufügen
line_symbolizer = mapnik.LineSymbolizer(mapnik.Color('rgb(50%,50%,50%)'),0.1)
r.symbols.append(line_symbolizer) # Symbolizer dem Rule-Objekt hinzufügen
s.rules.append(r) # Rule dem Style hinzufügen
m.append_style('My Style',s) # Style der Map hinzufügen
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 12: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/12.jpg)
12
Reiner Python-Code
für das Rednern einer Karte
# Layer erzeugen
layer = mapnik.Layer('world')
# Datenquelle
ds = mapnik.Shapefile(file='ne_110m_admin_0_countries.shp')
# dem Layer die Datenquelle hinzufügen
layer.datasource = ds
# Style anwenden auf Layer
layer.styles.append('My Style')
# Layer der Karte hinzufügen
m.layers.append(layer)
# Zoom auf die BBox des Layers
m.zoom_all()
# Karte rendern
mapnik.render_to_file(m,'world.png', 'png')
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Ü5
![Page 13: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/13.jpg)
13
Definition des Kartenaufbaus
in einem Mapfile
Pythonskript
zum Rendern der Karte
Mapfile mit
- Datenquellen
- Kartenaufbau
- Kartengestaltung
- ggf. Verweis auf weitere
ausgelagerte Dokumente
Daten Programmlogik Gestaltung
z.B. generate_image,py z.B. osm.xml und alle *.inc
![Page 14: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/14.jpg)
14
Pythonskripte zum Starten des
eigentlichen Renderns
generate_image.py
erzeugt ein einzelnes Bild
entsprechend der
Kartendefinition (Stylesheet)
und des gewünschten
räumlichen Ausschnitts
(Bounding Box)
generate_tiles.py
ist vergleichbar, erzeugt aber
ein Kachelarchiv für den
Webserver in den
gewünschten Zoomstufen
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 15: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/15.jpg)
15
Pythonskript mit Verweis auf Mapfile
import mapnik2
m = mapnik2.Map(1000,1000)
kartenaufbau = '/usr/local/share/mapnik/karte.xml'
mapnik2.load_map(m, kartenaufbau)
bbox=mapnik2.Box2d(620512, 5786283, 626050, 5791821)
m.zoom_to_box(bbox)
mapnik2.render_to_file(m,'/home/user/GIS/Uebung_01/karte.png')
![Page 16: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/16.jpg)
Mapfile Meine_Karte.XML
<?xml version="1.0" encoding="utf-
8"?>
<!DOCTYPE Map [
<!ENTITY % entities SYSTEM
"inc/entities.xml.inc">
%entities;
]>
<Map
bgcolor="&farbe_hintergrund;"
srs="+proj=utm +zone=32 +ellps=WGS84
+datum=WGS84 +units=m +no_defs"
minimum_version="0.7.1">
&fontset-settings;
<!-- *********************** -->
&layer-landbedeckung;
&layer-hoehenlinien;
&layer-schummerung;
&layer-gewaesser;
&landuse-overlay;
&layer-water_features;
&layer-tunnel;
&layer-buildings;
&layer-highway-area-casing;
&layer-strassen-kontur;
&layer-strassen-fuellung;
&landuse-overlay-nsg;
&layer-ferry-routes;
&layer-aerialways;
&layer-roads;
&layer-bridges;
&layer-admin;
&layer-power;
&layer-placenames;
&layer-amenity-stations;
&layer-amenity-symbols;
&layer-amenity-points;
&highway-junctions;
&layer-river-text;
&layer-roads-text;
&layer-text;
&layer-hl-zahlen;
</Map>
Layer in der
Reihenfolge der
Darstellung
Verweis auf Entitäten
Verweis auf Fonts
Hintergrundfarbe und CRS der Karte
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 17: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/17.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Landbedeckung
![Page 18: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/18.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Landbedeckung
Gewässer
Höhenlinien
![Page 19: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/19.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Landbedeckung
Gewässer
Höhenlinien
Gebäude
![Page 20: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/20.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Landbedeckung
Gewässer
Höhenlinien
Gebäude
Straßenkonturen
![Page 21: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/21.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Landbedeckung
Gewässer
Höhenlinien
Gebäude
Straßenkonturen
Straßendecker
![Page 22: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/22.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Landbedeckung
Gewässer
Höhenlinien
Gebäude
Straßenkonturen
Straßendecker
Schrift
![Page 23: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/23.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Landbedeckung
Gewässer
Höhenlinien
Gebäude
Straßenkonturen
Straßendecker
Schrift
Schummerung
![Page 24: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/24.jpg)
<Layer name="buildings" status="on" srs="&osm2pgsql_projection;">
<StyleName>buildings</StyleName>
<Datasource>
<Parameter name="type">PostGIS</Parameter>
<Parameter name="host">141.74.243.77</Parameter>
<Parameter name="dbname">hausumringe3</Parameter>
<Parameter name="user">postgres</Parameter>
<Parameter name="password">kennwort</Parameter>
<Parameter name="table">hu_brd</Parameter>
<Parameter
name="extent">1092780,5985032,1129239,6021567</Parameter>
</Datasource>
</Layer>
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Extent der Kachel in der
Projektion der DB
Layername Referenzierter Stil
Datenquelle
Layer
Woher kommen die Daten?
In welchem SRS liegt Datenquelle vor?
Welche Objekte sollen ausgewählt / dargestellt werden?
Welcher Stil soll für die Darstellung verwendet werden?
![Page 25: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/25.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und
Geodäsie
TextSymbolizer
ShieldSymbolizer
PolygonPatternSymbolizer
LineSymbolizer
PointSymbolizer RasterSymbolizer
PolygonSymbolizer LinePatternSymbolizer
![Page 26: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/26.jpg)
<Style name=„Siedlung“>
<Rule>
&maxscale_zoom11;
&minscale_zoom12;
<PolygonSymbolizer>
<CssParameter name="fill">&farbe_haus12;</CssParameter>
<CssParameter name="gamma">0.7</CssParameter>
</PolygonSymbolizer>
<LineSymbolizer>
<CssParameter name="stroke">&farbe_haus12;</CssParameter>
<CssParameter name="stroke-width">0.2</CssParameter>
</LineSymbolizer>
</Rule>
</Style>
Style
Wie sollen die Objekte dargestellt werden?
In welchen Zoomstufen / Maßstabsbereichen wird ein Objekt dargestellt?
Einschränkung der Objektauswahl durch Filter
Welcher Symbolizer wird für das Zeichnen verwendet?
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Darstellung nur in Zoomstufen 8 bis 12
Polygonfüllung
Kontur des Polygons
![Page 27: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/27.jpg)
ShieldSymbolizer und PolygonPatternSymbolizer
<Rule>
<Filter>[landuse] = 'hopfen'</Filter>
&maxscale_zoom8;
&maxscale_zoom12;
<PolygonPatternSymbolizer file="&symbols;/SK25_41510kl3.png" />
</Rule>
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Symbol für Füllung
Bild für ShieldSymbolizer
<Rule>
<Filter>[highway] = 'BAB' and [length] = 3</Filter>
&maxscale_zoom15;
&minscale_zoom15;
<ShieldSymbolizer fontset-name="bold-fonts" size="20"
fill="&farbe_bab_nummer;" placement="line"
file="&symbols;/bab_shield3.png" minimum-distance="120"
spacing="800">[ref]</ShieldSymbolizer>
</Rule>
106 4
106
![Page 28: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/28.jpg)
28
Koordinatenreferenzsysteme
Falls in Pythonskript keine Angabe gilt SRS des Mapfile <Map background-color="#b5d0d0" srs="+init=epsg:4326" minimum-
version="2.0.0">
SRS des Mapfile kann in Pythonskript überschrieben werden m.srs = „+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m
+no_defs“
Jeder Layer muss auch mit den Angaben des SRS der Datenquelle ausgestattet werden
<Layer name="roads-text-name" status="on"
srs="&osm2pgsql_projection;">
<StyleName>roads-text-name</StyleName>
<Datasource>
<Parameter name="table">&prefix;_line</Parameter>
&datasource-settings;
</Datasource>
</Layer>
![Page 29: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/29.jpg)
29
Entities (sg. Enitity) deutsch Einheiten, Gebilde, um wiederkehrende
Informationseinheiten zu standardisieren
Wiederholungen im Mapfile
− Datenquellen
− Verzeichnisse für die Symbole/Icons
− Farbdefinitionen
− Maßstabsbereiche
− Koordinatenreferenzsysteme
Entities vergleichbar mit Variablen/Konstanten
Mapfile kann in mehrere handliche Dokumente unterteilt
werden.
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 30: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/30.jpg)
30
Verweis auf eine Entität
<!ENTITY % entities SYSTEM "inc/entities.xml.inc">
%entities;
<!ENTITY % settings SYSTEM "settings.xml.inc">
%settings;
<!ENTITY datasource-settings SYSTEM "datasource-settings.xml.inc">
&datasource-settings;
<!ENTITY fontset-settings SYSTEM "fontset-settings.xml.inc">
&fontset-settings;
<!ENTITY srs900913 "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null
+no_defs +over">
&srs900913;
<!ENTITY % layers SYSTEM "layers.xml.inc">
%layers;
<!ENTITY % color-settings SYSTEM "farben.xml.inc">
%farben;
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 31: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/31.jpg)
31
Anwendung von Entities z.B. Maßstabsbereiche und Farben
<Style name="minor-roads-fill">
<Rule>
<Filter>[highway] = 'motorway' and not [tunnel] = 'yes'</Filter>
&maxscale_zoom10;
&minscale_zoom10;
<LineSymbolizer stroke="&farbe_motorway_fuell;" stroke-width="9.5" stroke-
linejoin="round"/>
</Rule>
<Rule>
<Filter>[highway] = 'primary' and not [tunnel] = 'yes'</Filter>
&maxscale_zoom10;
&minscale_zoom10;
<LineSymbolizer stroke="&farbe_primary_fuell;" stroke-width="4.18" stroke-
linejoin="round" stroke-linecap="round"/>
</Rule>
<Rule>
<Filter>[highway] = 'secondary' and not [tunnel] = 'yes'</Filter>
&maxscale_zoom10;
&minscale_zoom10;
<LineSymbolizer stroke="&farbe_secondary_fuell" stroke-width="4.18" stroke-
linejoin="round" stroke-linecap="round"/>
</Rule>
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 32: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/32.jpg)
32
Anwendung von Entities
z.B. Verzeichnisse, Datenquellen, SRS
<Style name="points">
<Rule>
&maxscale_zoom12;
&minscale_zoom15;
<Filter>[man_made]='schloss' or [man_made]='burg'</Filter>
<PointSymbolizer file="&symbols;/SK10_23800kl.png" allow_overlap="false"
opacity="0.8"/>
</Rule>
<Rule>
&maxscale_zoom16;
<Filter>[man_made]='schloss' or [man_made]='burg'</Filter>
<PointSymbolizer file="&symbols;/SK10_23800.png" allow_overlap="false"/>
</Rule>
</Style>
<Layer name="amenity-points" status="on" srs="&osm2pgsql_projection;">
<StyleName>points</StyleName>
<Datasource>
<Parameter name="table">
(select way,"natural“ man_made from &prefix;_point
where man_made is not null or "natural" in
('hoehleneingang','nadelbaum','laubbaum','felsblock')) as points</Parameter>
&datasource-settings;
</Datasource>
</Layer>
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 33: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/33.jpg)
33
datasource-settings.xml.inc Wichtigste, häufig verwendete Datenquelle
<Parameter name="type">postgis</Parameter>
<Parameter name="password">xxxyyyzzz</Parameter>
<Parameter name="host">141.74.243.234</Parameter>
<Parameter name="port">5432</Parameter>
<Parameter name="user">username</Parameter>
<Parameter name="dbname">bdlm_osm</Parameter>
<Parameter name="multiple_geometries">true</Parameter>
<Parameter name="estimate_extent">false</Parameter>
<Parameter
name="extent">1192991,6835611,1213423,6856068</Parameter>
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 34: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/34.jpg)
34
layers.xml.inc
<!ENTITY layer-shapefiles SYSTEM "layer-shapefiles.xml.inc">
<!ENTITY layer-landcover SYSTEM "layer-landcover.xml.inc">
<!ENTITY layer-water SYSTEM "layer-water.xml.inc">
<!ENTITY layer-water_features SYSTEM "layer-water_features.xml.inc">
<!ENTITY layer-buildings SYSTEM "layer-buildings.xml.inc">
<!ENTITY layer-ferry-routes SYSTEM "layer-ferry-routes.xml.inc">
<!ENTITY layer-aerialways SYSTEM "layer-aerialways.xml.inc">
<!ENTITY layer-placenames SYSTEM "layer-placenames.xml.inc">
<!ENTITY layer-amenity-stations SYSTEM "layer-amenity-stations.xml.inc">
<!ENTITY layer-amenity-symbols SYSTEM "layer-amenity-symbols.xml.inc">
<!ENTITY layer-amenity-points SYSTEM "layer-amenity-points.xml.inc">
<!ENTITY layer-power SYSTEM "layer-power.xml.inc">
<!ENTITY layer-admin SYSTEM "layer-admin.xml.inc">
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 35: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/35.jpg)
Mapnik: Ableitung von Topographischen Webkarten aus amtlichen Geobasisdaten 14.05.2013
![Page 36: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/36.jpg)
36
Höhenlinien und Schummerung mit
GDAL - Geospatial Data Abstraction Library http://www.gdal.org/
Informationen
gdalinfo dgm10_geo.tif
Umprojektion von geogr. nach UTM32
gdalwarp -t_srs "+proj=utm +zone=32 +datum=WGS84" -r cubic
dgm10_geo.tif dgm10_utm32.tif
Höhenlinien erzeugen
gdal_contour -a hoehe dgm10_utm32.tif hl_utm32_10m.shp -i 20
Schummerung
gdaldem hillshade dgm10_utm32.tif hillshade.tif -z 3
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
![Page 37: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/37.jpg)
37
Rasterlayer
hier Schummerung
<Style name="hillshadestyle2">
<Rule>
<RasterSymbolizer>
<CssParameter name="scaling">fast</CssParameter>
<CssParameter name="opacity">0.8</CssParameter>
<CssParameter name="mode">multiply</CssParameter>
</RasterSymbolizer>
</Rule>
</Style>
<Layer name="schummerung" status="on">
<StyleName>hillshadestyle2</StyleName>
<Datasource>
<Parameter name="type">raster</Parameter>
<Parameter name="file">&rasterdaten;/schummerung.tif</Parameter>
<Parameter name="format">tiff</Parameter>
<Parameter name="lox">582192</Parameter>
<Parameter name="loy">5235730</Parameter>
<Parameter name="hix">598576</Parameter>
<Parameter name="hiy">5238976</Parameter>
</Datasource>
</Layer>
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Datenquelle
Referenzierter Stil
Rastersymbolizer mit
Parametern
![Page 38: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/38.jpg)
38
Rasterlayer
Verweis auf georeferenzierte
Rasterdaten vom Typ GDAL
<Style name="hillshadestyle">
<Rule>
<RasterSymbolizer>
<CssParameter name="scaling">fast</CssParameter>
<CssParameter name="opacity">0.8</CssParameter>
<CssParameter name="mode">multiply</CssParameter>
</RasterSymbolizer>
</Rule>
</Style>
<Layer name="GDAL Layer from TIFF file">
<StyleName>schummerung2</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter
name="file">/home/user/GIS/dgm10/hillshade.tif</Parameter>
</Datasource>
</Layer>
![Page 39: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/39.jpg)
39
Problem entsteht vermehrt beim Rendern kleiner Kacheln
256 x 256 Pixel
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Ham
Fehlende Beschriftung
in benachbarten Kacheln
Flens
leswig
![Page 40: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/40.jpg)
40 Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Hamburg
512 px
buffer_size = 512 Pixel
Größerer Extent je nach Zoomstufe
512 px * Auflösung in Meter/Pixel
Lösung 1:
Berücksichtigung eines größeren Extents beim Rendern
Fehlende Beschriftung
in benachbarten Kacheln
![Page 41: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/41.jpg)
41 Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Hamburg
2560 Pixel
25
60
Pix
el
Lösung 2:
Rendern von großen Kacheln 2560 x 2560 Pixel
Nachträgliches Unterteilen in 100 kleine Kacheln 256 x 256 px
Fehlende Beschriftung
in benachbarten Kacheln
Ratze
![Page 42: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/42.jpg)
42
Datenmengen
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
Datenquelle PostGIS und
DGM
Basis-DLM 15 GB
DLM250 1 GB
Höhenlinien 15 GB
Hausumringe (48,4 Mio.) 12 GB
Hauskoordinaten (ca. 22,3
Mio)
3 GB
DGM10 20 GB Kachelarchive
Volltonvariante 300 GB
Schummerungsvariante 500 GB
Graustufen 300 GB
Halbton 300 GB
Summe 1,4 TB
![Page 43: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/43.jpg)
Mapnik Workshop, Peter Kunz, Bundesamt für Kartographie und Geodäsie
BRD und Luxemburg – Basis-DLM und OSM
![Page 44: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/44.jpg)
44
Derivation of a Multiscale Topographic Web Map Tile Service based on Federal Datasets
Peter Kunz
![Page 45: Musterseite zweite Zeile (optional) · PDF fileMit GDAL Schummerung und Höhenlinien berechnen OSM-Karte rendern Lokales Kachelarchiv rendern Mapnik Workshop, Peter Kunz,](https://reader031.fdocument.pub/reader031/viewer/2022022420/5a7a02087f8b9a5e438b5e70/html5/thumbnails/45.jpg)
45
Links
Mapnik
http://mapnik.org/
Mapnik Mailing list
http://mapnik.org/contact/
Repositories auf Github
https://github.com/mapnik
OpenStreetMap-Wiki
http://wiki.openstreetmap.org/wiki/Mapnik
OpenStreetMap Subversion-Repository
http://svn.openstreetmap.org/applications/rendering/mapnik/
GDAL
http://www.gdal.org/