Skip to content

Live update [ARCHIVED]

Jonathan Beliën edited this page Apr 17, 2018 · 1 revision

Warning: These instructions were written for testing purpose. Do not use in production !

Install

Java

sudo apt install openjdk-9-jre

Osmosis

mkdir ~/src/osmosis && cd ~/src/osmosis
wget http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.tgz
tar xvfz osmosis-latest.tgz
rm osmosis-latest.tgz
chmod a+x ./bin/osmosis

Configuration

mkdir ./live

./bin/osmosis --read-replication-interval-init workingDirectory=./live

cd ./live
wget http://download.geofabrik.de/europe/belgium-updates/state.txt
cd ..

Edit ~/src/osmosis/live/configuration file :

Replace http://planet.openstreetmap.org/replication/minute by http://download.geofabrik.de/europe/belgium-update for parameter baseUrl

Belgium

Download changes

mkdir ./live/$(date +%Y%m%d)
./bin/osmosis --read-replication-interval workingDirectory=./live --simplify-change --write-xml-change ./live/$(date +%Y%m%d)/changes.osc.gz 

Apply changes to database

osm2pgsql --database gis --slim --cache 2500 --number-processes 2 --multi-geometry --hstore \
  --style ~/openstreetmap-carto-be/openstreetmap-carto.style \
  --append ./live/$(date +%Y%m%d)/changes.osc.gz \
  --expire-tiles 12-15 --expire-output ./live/$(date +%Y%m%d)/expire.list

Render tiles that need to be updated (zoom level >= 12)

osmbe

cat ./live/$(date +%Y%m%d)/expire.list | ~/src/mod_tile/render_expired --num-threads=2 --map=osmbe --min-zoom=12 > /dev/null

Just replace osmbe by osmbe-fr, osmbe-nl or osmbe-de to render localized baselayer.

Usage

render_expired

Usage: render_expired [OPTION] ...
  -m, --map=MAP        render tiles in this map (defaults to 'default')
  -s, --socket=SOCKET  unix domain socket name for contacting renderd
  -n, --num-threads=N the number of parallel request threads (default 1)
  -t, --tile-dir       tile cache directory (defaults to '/var/lib/mod_tile')
  -z, --min-zoom=ZOOM  filter input to only render tiles greater or equal to this zoom level (default is 0)
  -Z, --max-zoom=ZOOM  filter input to only render tiles less than or equal to this zoom level (default is 18)
  -d, --delete-from=ZOOM  when expiring tiles of ZOOM or higher, delete them instead of re-rendering (default is off)
  -T, --touch-from=ZOOM   when expiring tiles of ZOOM or higher, touch them instead of re-rendering (default is off)

References