Raspberrypi.osm-tile-server
- Ziel ist ein Tile-Server "Deutschland" aufzusetzen, dieser soll per http://tile.host.domain/z=&x=&y= PNG Kacheln für den OrgaMon liefern
- Bestandteile sind
- Rohdaten der Geofabrik Karlsruhe Frederik Ramm
- postgresql Datenbank als Datenknecht
- osm2pgsql als Befüller der Datenbank
- mapnik macht aus XML -> PNG
- tirex konnektiert auf die Datenbank macht aus x,y,z -> XML und gibt es an mapnik
System-Voraussetzungen
- Raspberry Pi 4 B 2 GB mit Stretch Lite (ohne Desktop)
- Raspberry Pi 4 B 4 GB mit Desktop
- an USB gekoppelte Festplatte (ab 100 GB) oder 128 GB Micro SD Karte
Vorbereitungen
- Schliesse über den USB Port eine SSD an (128 GB ausreichend!)
- Erstelle darauf ein ext4 Dateisystem und mounte es nach /srv/osm
hole software
apt install postgresql-postgis mapnik-vector-tile mapnik-utils osm2pgsql screen
richte eine neues Datenbank-Ablagestelle ein
# # Mehr information hier: # https://www.digitalocean.com/community/tutorials/how-to-move-a-postgresql-data-directory-to-a-new-location-on-ubuntu-16-04
# # schneller Weg hier: # cd /srv/osm systemctl stop postgresql mv /var/lib/postgresql/11/main . mv main db joe /etc/postgresql/11/main/postgresql.conf data_directory = '/srv/osm/db' systemctl start postgresql
erstelle die Datenbank "gis"
sudo -u postgres createdb gis sudo -u postgres psql gis -c "CREATE EXTENSION postgis";
# optional "Kontrolle" # # SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%'; \q
Tirex
https://wiki.openstreetmap.org/wiki/Tirex
- Ist das wirklich notwendig?
apt install libipc-sharelite-perl libjson-perl libgd-gd2-perl libwww-perl git clone https://github.com/openstreetmap/tirex.git cd tirex make
hole Deutschland
wget https://download.geofabrik.de/europe/germany-latest.osm.pbf
4 GB belegt |
carto nik4
- Ist das wirklich notwendig?
apt install openstreetmap-carto nik4
importiere Deutschland
# # die folgendes Aktion geht sehr lange - ev. macht man das in einem screen! # sudo -u postgres osm2pgsql --slim --username postgres --unlogged -I -C 200 --database gis germany-latest.osm.pbf
74 GB belegt |
Speicher Sparmaßnahmen
reduziere Memory-Split auf 16 MB
raspi-config Advanced Settings Memeory Split -> 16 MB
Tuning von PostgreSQL
Frederik Ramm hat die PostgreSQL-Optimierung dokumentiert auf http://www.geofabrik.de/media/2012-09-08-osm2pgsql-performance.pdf
- Ich gehe hier mal vom Standard-Pfad aus:
joe /etc/postgres/11/main/postgresql.conf
shared_buffers = 32MB maintenance_work_mem = 32MB fsync = off random_page_cost = 1.1
mod_tile
https://wiki.openstreetmap.org/wiki/Mod_tile#Install_mod_tile_From_Source
apt install libmapnik3.0 libmapnik-dev mapnik-utils python-mapnik autoconf apache2-dev apache2-utils apache2 git git clone https://github.com/openstreetmap/mod_tile cd mod_tile