Raspberrypi.osm-tile-server: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(88 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Installation eines eigenen "Tile"-Servers. Also eines Kartenlieferanten im PNG-Grafikformat über das HTTP-Protokoll. Es is nativ kompatibel zu den "online" Tile Servern des OSM-Projektes.
{|
|[[Datei:2143-1406.png]]<br>OpenStreetMap
|[[Datei:google-2143-1406.png]]<br>google
|[[Datei:Local-1406.png]]<br>openSUSE 2012
|[[Datei:Raspberry-pi-tile-1406.png]]<br>Raspberry Pi 2020
|}
Das Bild zeigt 4 Versionen eines einzelnen Tile (=Kachel) in der Zoom-Stufe 12.Über einen typischen Tile-Server würde man genau diese Kachel über folgende URL erhalten:
* OpenStreetMap: https://tile.openstreetmap.org/12/2143/1406.png
* Google: https://mt0.google.com/vt/x=2143&y=1406&zoom=5
** Man beachte bei Google den invertierten zoom-Parameter, zoom=17-z
OrgaMon legt diese Kachel, je nach Provider, mit dem Dateinamen ~Provider~-12-2143-1406.png im Kartenpfad ab (im Moment sind die Provider "local-", "google-" und "osm-"), eine Kachel wird auf diese Art immer nur einmal angefragt.
== Funktionsweise ==
[[Datei:Linux-osm-1.png]]
So einen Tile-Server zu installieren ist gar nicht so einfach: Das Gesamtkunstwerk basiert auf einigen Paketen. Die rechte Seite der Grafik deutet den ganzen Konfigurationsaufwand der einzelnen Dienste an.
* Ziel ist ein Tile-Server "Deutschland" aufzusetzen, dieser soll per http://tile.host.domain/z=&x=&y= PNG Kacheln für den OrgaMon liefern
* Ziel ist ein Tile-Server "Deutschland" aufzusetzen, dieser soll per http://tile.host.domain/z=&x=&y= PNG Kacheln für den OrgaMon liefern
** https://www.wikiwand.com/de/OpenStreetMap#/Server
** https://www.wikiwand.com/de/OpenStreetMap#/Server
Zeile 5: Zeile 33:
** postgresql Datenbank als Datenknecht
** postgresql Datenbank als Datenknecht
** osm2pgsql als Befüller der Datenbank
** osm2pgsql als Befüller der Datenbank
** mapnik macht aus XML -> PNG
** mapnik-Bibliothek macht aus XML -> PNG
** tirex konnektiert auf die Datenbank macht aus x,y,z -> XML und gibt es an mapnik
** tirex konnektiert auf die Datenbank macht aus x,y,z -> XML und gibt es an mapnik


Zeile 28: Zeile 56:
   v
   v
  filesystem
  filesystem


== System-Voraussetzungen ==
== System-Voraussetzungen ==


* Raspberry Pi 4 B 2 GB mit Stretch Lite (ohne Desktop)
* Raspberry Pi 4 B mit 4 GB und Stretch Lite (ohne Desktop)
** oder
* Raspberry Pi 4 B 4 GB mit Desktop
* an USB gekoppelte Festplatte (ab 100 GB) oder 128 GB Micro SD Karte
* an USB gekoppelte Festplatte (ab 100 GB) oder 128 GB Micro SD Karte
=== Mount ===
* per USB erstmalig angekoppelte SSD erscheinen oft als "sda", das könnte sich aber ändern wenn weitere USB Sticks oder SSDs ins Spiel kommen
* jede Partition hat jedoch einen eindeutigen "id" mit Hilfe dessen man mounten kann
* <code>joe /etc/systemd/system/srv-osm.mount</code>
[Unit]
Description=srv-osm
[Mount]
What=/dev/disk/by-id/usb-KINGSTON_SKC380S3240G_20190510-0:0-part1
Where=/srv/osm
[Install]
WantedBy=local-fs.target
* <code>systemctl start srv-osm.mount</code>
* <code>systemctl enable srv-osm.mount</code>


== Vorbereitungen ==
== Vorbereitungen ==
Zeile 41: Zeile 86:
* Schliesse über den USB Port eine SSD an (128 GB ausreichend!)
* Schliesse über den USB Port eine SSD an (128 GB ausreichend!)
* Erstelle darauf ein ext4 Dateisystem und mounte es nach /srv/osm
* Erstelle darauf ein ext4 Dateisystem und mounte es nach /srv/osm
=== erhöhe Swap auf 2GB ===
/etc/init.d/dphys-swapfile stop
joe /etc/dphys-swapfile
  CONF_SWAPSIZE=2048
/etc/init.d/dphys-swapfile start
=== reduziere Memory-Split auf 16 MB ===
raspi-config
  Option "7 Advanced Options"
    Option "A3 Memory Split"
    -> 16 MB
ein Reboot ist nötig


== hole Deutschland ==
== hole Deutschland ==
Zeile 46: Zeile 107:
  wget https://download.geofabrik.de/europe/germany-latest.osm.pbf
  wget https://download.geofabrik.de/europe/germany-latest.osm.pbf


{{Achtung|2 Stunden Downloadzeit / 4 GB belegt}}
{{Achtung|2 Stunden Downloadzeit / 3,1 GB belegt}}


== postgres ==
== hole den Karten-Style ==


apt install postgresql-postgis
* mapnik (die Ausbelichtungs Bibliothek) benötigt ein style.xml, darin werden Fonts und Grafiken und Shapes referenziert die im Dateisystem liegen müssen
* im Style sind auch SQL Filter und so manch anderes integriert
* Fonts ist einfach nur eine Pfadangabe die korrigiert werden muss
* styles sind sehr komplex, hier muss einiges beachtet werden.
* So ein "Style.xml" kann schon mal 4 MByte gross sein


== mapnik ==


apt install mapnik-doc mapnik-reference mapnik-utils mapnik-vector-tile
apt install mapnik-vector-tile mapnik-utils osm2pgsql screen


== Grundlagen ==
apt install openstreetmap-carto fonts-noto ttf-unifont
#apt install npm
#npm install -g carto


https://media.ccc.de/v/2018-5390-osm_daten_mit_mapnik_und_python_rendern
cd /usr/share/openstreetmap-carto-common


=== Fonts ===
#
# Leider muss get-shapefiles.py auf neue Downloadquellen angepasst werden
# -> siehe Repository OrgaMon-tile-server
#
./get-shapefiles.py
# openstreetmap-carto liefert gleich zwei mal einen compilierten style.xml mit
# die Dateien sind aber identisch
/usr/share/openstreetmap-carto/style.xml
/usr/share/openstreetmap-carto-common/style.xml


apt install fonts-noto ttf-unifont


=== Styles ===
{{Achtung|System microSD: 5,1 GB belegt}}


* Es hat sich herausgestellt dass der mapnik INstallation fonts und styles fehlen
* fonts ist einfach nur eine Pfadangabe die korrigiert werden muss
== postgres ==
* styles ist komplex, hier muss einiges gemacht werden


https://github.com/gravitystorm/openstreetmap-carto
apt install postgresql-postgis


* veraltet https://github.com/openstreetmap/mapnik-stylesheets


https://github.com/giggls/openstreetmap-carto-de
=== Tuning von PostgreSQL ===


== richte eine neues Datenbank-Ablagestelle ein ==
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:
 
systemctl stop postgresql
joe /etc/postgres/11/main/postgresql.conf
  shared_buffers = 32MB
  maintenance_work_mem = 32MB
  fsync = off
  random_page_cost = 1.1
systemctl start postgresql
 
 
 
=== richte eine neue Datenbank-Ablagestelle ein ===
 
* das Standard-Verzeichnis für PostgreSQL würde überlaufen, wir müssen es auf die SSD verschieben


   #
   #
Zeile 95: Zeile 183:
   systemctl start postgresql
   systemctl start postgresql


== erstelle die Datenbank "gis" ==
=== erstelle die Datenbank "gis" ===


  sudo -u postgres createdb gis
  sudo -u postgres createdb gis
  sudo -u postgres psql gis -c "CREATE EXTENSION postgis";
  sudo -u postgres psql gis -c "CREATE EXTENSION postgis";
  sudo -u postgres psql gis -c "CREATE EXTENSION hstore";
  sudo -u postgres psql gis -c "CREATE EXTENSION hstore";
sudo -u postgres psql gis -c "GRANT ALL ON DATABASE gis TO tirex";




  # optional "Kontrolle"
  #  
# optionale "Kontrolle"
  #
  #
  #
  sudo -u postgres psql gis
  SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%';
  SELECT name, default_version,installed_version FROM pg_available_extensions where installed_version is not null;
  \q
  \q


== importiere Deutschland ==
=== berechtige User tirex ===
 
sudo -u postgres psql gis
  # CREATE ROLE tirex LOGIN;
  # GRANT SELECT ON ALL TABLES IN SCHEMA public TO tirex;
  # GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO tirex;
 
* not work:  GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO tirex;
* not work:  GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO user;


  #
  #
  # die folgendes Aktion geht sehr lange - ev. macht man das in einem screen!
  # step by step as user postgres, if nothing helps
  #
  #
  # sudo -u postgres osm2pgsql --slim --username postgres --unlogged -I -C 200 --database gis germany-latest.osm.pbf
  GRANT SELECT ON TABLE planet_osm_rels to tirex;
  cp ~/openstreetmap-carto/openstreetmap-carto.* .
  GRANT SELECT ON TABLE planet_osm_point to tirex;
  sudo -u postgres osm2pgsql --slim --unlogged -I -C 200 -G --hstore --style openstreetmap-carto.style --tag-transform-script openstreetmap-carto.lua -d gis germany-latest.osm.pbf
  GRANT SELECT ON TABLE planet_osm_line to tirex;
   
  GRANT SELECT ON TABLE planet_osm_polygon to tirex;
{{Achtung|16 Stunden Rechenzeit / 77 GB belegt}}
GRANT SELECT ON TABLE planet_osm_roads to tirex;
GRANT SELECT ON TABLE planet_osm_nodes to tirex;


== Speicher Sparmaßnahmen ==
== importiere Deutschland (osm2pgsql) ==


=== erhöhe Swap auf 2GB ===
* <code>apt install screen osm2pgsql</code>


  /etc/init.d/dphys-swapfile stop
  #
  joe /etc/dphys-swapfile
  # pbf -> Database
  CONF_SWAPSIZE=2048
#
  /etc/init.d/dphys-swapfile start
  sudo -u postgres osm2pgsql --hstore --slim --unlogged -C 200 -d gis germany-latest.osm.pbf


=== reduziere Memory-Split auf 16 MB ===
{{Achtung|15 Stunden Rechenzeit / 104 GB belegt}}


raspi-config
== mapnik ==
  Advanced Settings
    Memeory Split
    -> 16 MB


=== Tuning von PostgreSQL ===
* Infos: https://media.ccc.de/v/2018-5390-osm_daten_mit_mapnik_und_python_rendern


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:
apt install mapnik-doc mapnik-reference mapnik-utils mapnik-vector-tile
 
joe /etc/postgres/11/main/postgresql.conf
 
  shared_buffers = 32MB
  maintenance_work_mem = 32MB
  fsync = off
  random_page_cost = 1.1


== mod_tile ==
== mod_tile ==
Zeile 153: Zeile 241:




  apt install libmapnik3.0 libmapnik-dev mapnik-utils python-mapnik autoconf apache2-dev apache2-utils apache2 git
  apt install python-mapnik autoconf apache2-dev apache2-utils apache2 git
  git clone https://github.com/openstreetmap/mod_tile
  git clone https://github.com/openstreetmap/mod_tile
  cd mod_tile
  cd mod_tile
Zeile 166: Zeile 254:
* Nun ist mod_tile.so in /usr/lib/apache2/modules abgelegt
* Nun ist mod_tile.so in /usr/lib/apache2/modules abgelegt
* Wir müssen es im Apache Webserver noch laden
* Wir müssen es im Apache Webserver noch laden
bash -c "echo 'LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so' > /etc/apache2/mods-available/tile.load"
a2enmod tile
systemctl restart apache2


== tirex ==
== tirex ==
Zeile 173: Zeile 265:


  apt install libipc-sharelite-perl libjson-perl libgd-gd2-perl libwww-perl
  apt install libipc-sharelite-perl libjson-perl libgd-gd2-perl libwww-perl
  git clone https://github.com/openstreetmap/tirex.git
 
{{Achtung|System microSD: 4,6 GB belegt}}
 
cd /srv/osm
  git clone https://github.com/openstreetmap/tirex
  cd tirex
  cd tirex
  make
  make
  make install
  make install


#
# tirex can not be run as root, create a tirex user
#
  addgroup tirex
  addgroup tirex
  adduser --ingroup tirex tirex
  adduser --system --ingroup tirex tirex
   
   
#
# mode_tile will open "/var/lib/tirex/modtile.sock"
#
mkdir /var/lib/tirex
chown tirex /var/lib/tirex
chgrp tirex /var/lib/tirex
#
# Log Verzeichnis anlegen
#
mkdir /var/log/tirex
chmod 666 /var/log/tirex
#
# 2 Services
#
  cp debian/*.service /etc/systemd/system
  cp debian/*.service /etc/systemd/system
 
  root@pi4x00:/etc/tirex/renderer# rm wms.conf
  cd /etc/tirex/renderer
  root@pi4x00:/etc/tirex/renderer# rm -R wms
#
  root@pi4x00:/etc/tirex/renderer# rm openseamap.conf
# disable unused Tile-Provider
  root@pi4x00:/etc/tirex/renderer# rm -R openseamap/
#
  root@pi4x00:/etc/tirex/renderer# rm mapserver.conf
rm wms.conf
  root@pi4x00:/etc/tirex/renderer# rm -R mapserver/
  rm -R wms
  rm openseamap.conf
  rm -R openseamap/
  rm mapserver.conf
  rm -R mapserver/
 
joe /etc/tirex/renderer/mapnik/osm.conf
  #
  # Zentrales Style Element
  #
  name=osm
  mapfile=/usr/share/openstreetmap-carto/style.xml
  tiledir=/srv/osm
  minz=0
  maxz=18
 


joe /etc/tirex/renderer/mapnik.conf
  fontdir=/usr/share/fonts
  fontdir_recurse=1


* Test  
* Test  
Zeile 195: Zeile 328:
  tirex-batch map=osm z=18 x=137177 y=90017
  tirex-batch map=osm z=18 x=137177 y=90017


== Unklare Dinge ==
== OrgaMon-OSM Projekt-Status ==
 
=== openSuSE ===
 
* Nov. 2012: Kontaktaufnahme zu geofabrik.de mit der Bitte um Hilfe http://www.geofabrik.de/
* 22.11.2012: ich will einen neuen Versuch starten mit http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.2/x86_64/
* 22.11.2012: setzte einen neuen Server auf ... Schritte bis osm2pgsl
* 23.11.2012: Dokumentation ...
* 30.11.2012: Tile Server läuft (Ziel 1)!
* 04.12.2012: Gegenprobe auf anderem/schwächerem Server (raib24)
* 06.12.2012: Gegenprobe wohl wegen zu geringem Hauptspeicher (4 GByte) ein Fehlschlag
* 29.04.2013: Gegenprobe auf stärkerem System (server)
* 29.04.2013: läuft nicht, tirex+mapnik da fehlen config-Dateien
* 18.07.2014: Server raib23, raib24 abgebaut
* 18.07.2014: neuer Server aufgesetzt (openSUSE 13.1) neuer Versuch mit diesem Server ...
 
=== Raspberry Pi ===


=== carto nik4 ===
* 29.03.2020: Versuch mit einem Raspberry Pi 4 - 2 GB
* 30.03.2020: neuer Import mit .style und .lua / Erfolg
* 31.03.2020: ERROR "Cannot load any Mapnik styles", tirex kann mapnik nicht laden - da kein "style" gefunden wird
* 01.04.2020: wir haben jetzt ein osm-de.xml, viele Datenbankprobleme
* 03.04.2020: Versuch mit einem Raspberry Pi 4 - 4 GB
* 05.04.2020: /tirex/tileserver.js liefert Liechtenstein-Tiles aus
* 06.04.2020: /tirex/tileserver.js liefert Deutschland aus
* 09.2020: Erneuter Versuch mit Pi 4 - 8 GB, Systemlaufwerk 120 GB NVME Drive via USB 3.0


* Ist das wirklich notwendig?
== Links ==


apt install openstreetmap-carto nik4
* https://ircama.github.io/osm-carto-tutorials/updating-data/
* https://mg.guelker.eu/articles/2020/01/01/openstreetmap-printkarten/
* https://osmdata.openstreetmap.de/data/
* Boot from ssd
** https://www.youtube.com/watch?v=AskGItLhESk
** https://www.youtube.com/watch?v=zVhYvvrGhMU

Aktuelle Version vom 12. August 2020, 11:18 Uhr

Installation eines eigenen "Tile"-Servers. Also eines Kartenlieferanten im PNG-Grafikformat über das HTTP-Protokoll. Es is nativ kompatibel zu den "online" Tile Servern des OSM-Projektes.


OpenStreetMap

google

openSUSE 2012

Raspberry Pi 2020

Das Bild zeigt 4 Versionen eines einzelnen Tile (=Kachel) in der Zoom-Stufe 12.Über einen typischen Tile-Server würde man genau diese Kachel über folgende URL erhalten:


OrgaMon legt diese Kachel, je nach Provider, mit dem Dateinamen ~Provider~-12-2143-1406.png im Kartenpfad ab (im Moment sind die Provider "local-", "google-" und "osm-"), eine Kachel wird auf diese Art immer nur einmal angefragt.

Funktionsweise

So einen Tile-Server zu installieren ist gar nicht so einfach: Das Gesamtkunstwerk basiert auf einigen Paketen. Die rechte Seite der Grafik deutet den ganzen Konfigurationsaufwand der einzelnen Dienste an.



  • 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-Bibliothek macht aus XML -> PNG
    • tirex konnektiert auf die Datenbank macht aus x,y,z -> XML und gibt es an mapnik


Web-Request Tile "x|y|z"
 |
 v
apache2 (Webserver die Anfragen annimmt und PNG ausliefert)
 |
 v
mod_tile (Apache2 Modul das X,Y,Z Tiles liefert)
 |
 v
tirex (dämon der Auftäge zur Tile-Generierung annimmt)
 |
 v
mapnik (Bibliothek die XML nach Grafik wandelt)
 |
 v
postgresql (Datenbank-Server)
 |
 v
filesystem

System-Voraussetzungen

  • Raspberry Pi 4 B mit 4 GB und Stretch Lite (ohne Desktop)
  • an USB gekoppelte Festplatte (ab 100 GB) oder 128 GB Micro SD Karte

Mount

  • per USB erstmalig angekoppelte SSD erscheinen oft als "sda", das könnte sich aber ändern wenn weitere USB Sticks oder SSDs ins Spiel kommen
  • jede Partition hat jedoch einen eindeutigen "id" mit Hilfe dessen man mounten kann
  • joe /etc/systemd/system/srv-osm.mount
[Unit]
Description=srv-osm

[Mount]
What=/dev/disk/by-id/usb-KINGSTON_SKC380S3240G_20190510-0:0-part1
Where=/srv/osm

[Install]
WantedBy=local-fs.target
  • systemctl start srv-osm.mount
  • systemctl enable srv-osm.mount

Vorbereitungen

  • Schliesse über den USB Port eine SSD an (128 GB ausreichend!)
  • Erstelle darauf ein ext4 Dateisystem und mounte es nach /srv/osm

erhöhe Swap auf 2GB

/etc/init.d/dphys-swapfile stop
joe /etc/dphys-swapfile
 CONF_SWAPSIZE=2048
/etc/init.d/dphys-swapfile start

reduziere Memory-Split auf 16 MB

raspi-config
 Option "7 Advanced Options"
   Option "A3 Memory Split"
    -> 16 MB
ein Reboot ist nötig

hole Deutschland

wget https://download.geofabrik.de/europe/germany-latest.osm.pbf

2 Stunden Downloadzeit / 3,1 GB belegt

hole den Karten-Style

  • mapnik (die Ausbelichtungs Bibliothek) benötigt ein style.xml, darin werden Fonts und Grafiken und Shapes referenziert die im Dateisystem liegen müssen
  • im Style sind auch SQL Filter und so manch anderes integriert
  • Fonts ist einfach nur eine Pfadangabe die korrigiert werden muss
  • styles sind sehr komplex, hier muss einiges beachtet werden.
  • So ein "Style.xml" kann schon mal 4 MByte gross sein


apt install openstreetmap-carto fonts-noto ttf-unifont
#apt install npm
#npm install -g carto
cd /usr/share/openstreetmap-carto-common
#
# Leider muss get-shapefiles.py auf neue Downloadquellen angepasst werden
# -> siehe Repository OrgaMon-tile-server
#
./get-shapefiles.py

# openstreetmap-carto liefert gleich zwei mal einen compilierten style.xml mit
# die Dateien sind aber identisch
/usr/share/openstreetmap-carto/style.xml
/usr/share/openstreetmap-carto-common/style.xml


System microSD: 5,1 GB belegt


postgres

apt install postgresql-postgis


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:
systemctl stop postgresql
joe /etc/postgres/11/main/postgresql.conf

 shared_buffers = 32MB
 maintenance_work_mem = 32MB
 fsync = off
 random_page_cost = 1.1

systemctl start postgresql


richte eine neue Datenbank-Ablagestelle ein

  • das Standard-Verzeichnis für PostgreSQL würde überlaufen, wir müssen es auf die SSD verschieben
 #
 # 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";
sudo -u postgres psql gis -c "CREATE EXTENSION hstore";
sudo -u postgres psql gis -c "GRANT ALL ON DATABASE gis TO tirex";


# 
# optionale "Kontrolle"
#
sudo -u postgres psql gis
SELECT name, default_version,installed_version FROM pg_available_extensions where installed_version is not null;
\q

berechtige User tirex

sudo -u postgres psql gis
 # CREATE ROLE tirex LOGIN;
 # GRANT SELECT ON ALL TABLES IN SCHEMA public TO tirex;
 # GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO tirex;
  • not work: GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO tirex;
  • not work: GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO user;
#
# step by step as user postgres, if nothing helps
#
GRANT SELECT ON TABLE planet_osm_rels to tirex;
GRANT SELECT ON TABLE planet_osm_point to tirex;
GRANT SELECT ON TABLE planet_osm_line to tirex;
GRANT SELECT ON TABLE planet_osm_polygon to tirex;
GRANT SELECT ON TABLE planet_osm_roads to tirex;
GRANT SELECT ON TABLE planet_osm_nodes to tirex;

importiere Deutschland (osm2pgsql)

  • apt install screen osm2pgsql
#
# pbf -> Database
#
sudo -u postgres osm2pgsql --hstore --slim --unlogged -C 200 -d gis germany-latest.osm.pbf

15 Stunden Rechenzeit / 104 GB belegt

mapnik


apt install mapnik-doc mapnik-reference mapnik-utils mapnik-vector-tile

mod_tile

https://wiki.openstreetmap.org/wiki/Mod_tile#Install_mod_tile_From_Source


apt install python-mapnik autoconf apache2-dev apache2-utils apache2 git
git clone https://github.com/openstreetmap/mod_tile
cd mod_tile
./autogen.sh
./configure
make
make install
make install-mod_tile
ldconfig


  • Nun ist mod_tile.so in /usr/lib/apache2/modules abgelegt
  • Wir müssen es im Apache Webserver noch laden
bash -c "echo 'LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so' > /etc/apache2/mods-available/tile.load"
a2enmod tile
systemctl restart apache2

tirex

https://wiki.openstreetmap.org/wiki/Tirex


apt install libipc-sharelite-perl libjson-perl libgd-gd2-perl libwww-perl

System microSD: 4,6 GB belegt

cd /srv/osm
git clone https://github.com/openstreetmap/tirex
cd tirex
make
make install
#
# tirex can not be run as root, create a tirex user
#
addgroup tirex
adduser --system --ingroup tirex tirex

#
# mode_tile will open "/var/lib/tirex/modtile.sock" 
#
mkdir /var/lib/tirex
chown tirex /var/lib/tirex
chgrp tirex /var/lib/tirex

#
# Log Verzeichnis anlegen
#
mkdir /var/log/tirex
chmod 666 /var/log/tirex

#
# 2 Services
#
cp debian/*.service /etc/systemd/system
 
cd /etc/tirex/renderer
#
# disable unused Tile-Provider
#
rm wms.conf
rm -R wms
rm openseamap.conf
rm -R openseamap/
rm mapserver.conf
rm -R mapserver/
joe /etc/tirex/renderer/mapnik/osm.conf
 #
 # Zentrales Style Element
 #
 name=osm
 mapfile=/usr/share/openstreetmap-carto/style.xml
 tiledir=/srv/osm
 minz=0
 maxz=18


joe /etc/tirex/renderer/mapnik.conf
 fontdir=/usr/share/fonts
 fontdir_recurse=1
  • Test
tirex-batch map=osm z=18 x=137177 y=90017

OrgaMon-OSM Projekt-Status

openSuSE

  • Nov. 2012: Kontaktaufnahme zu geofabrik.de mit der Bitte um Hilfe http://www.geofabrik.de/
  • 22.11.2012: ich will einen neuen Versuch starten mit http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.2/x86_64/
  • 22.11.2012: setzte einen neuen Server auf ... Schritte bis osm2pgsl
  • 23.11.2012: Dokumentation ...
  • 30.11.2012: Tile Server läuft (Ziel 1)!
  • 04.12.2012: Gegenprobe auf anderem/schwächerem Server (raib24)
  • 06.12.2012: Gegenprobe wohl wegen zu geringem Hauptspeicher (4 GByte) ein Fehlschlag
  • 29.04.2013: Gegenprobe auf stärkerem System (server)
  • 29.04.2013: läuft nicht, tirex+mapnik da fehlen config-Dateien
  • 18.07.2014: Server raib23, raib24 abgebaut
  • 18.07.2014: neuer Server aufgesetzt (openSUSE 13.1) neuer Versuch mit diesem Server ...

Raspberry Pi

  • 29.03.2020: Versuch mit einem Raspberry Pi 4 - 2 GB
  • 30.03.2020: neuer Import mit .style und .lua / Erfolg
  • 31.03.2020: ERROR "Cannot load any Mapnik styles", tirex kann mapnik nicht laden - da kein "style" gefunden wird
  • 01.04.2020: wir haben jetzt ein osm-de.xml, viele Datenbankprobleme
  • 03.04.2020: Versuch mit einem Raspberry Pi 4 - 4 GB
  • 05.04.2020: /tirex/tileserver.js liefert Liechtenstein-Tiles aus
  • 06.04.2020: /tirex/tileserver.js liefert Deutschland aus
  • 09.2020: Erneuter Versuch mit Pi 4 - 8 GB, Systemlaufwerk 120 GB NVME Drive via USB 3.0

Links