#!/bin/bash -e #Version: 0.5.1 #For use on clean Ubuntu 18 only!!! #Cited, Inc. Wilmington, Delaware #Description: Reload OSM data #Note: This script assumes all external commands # (pg_config, osm2pgsl, ...) are installed. function reload_data(){ cat >/etc/postgresql/${PG_VER}/main/pg_hba.conf </tmp/latlong.php <status; if (\$status=="OK") { \$Lat = \$xml->result->geometry->location->lat; \$Lon = \$xml->result->geometry->location->lng; \$LatLng = "\$Lat,\$Lon"; echo "\$LatLng"; } ?> EOF echo "Updating lat,long for ${LOC_NAME} in Leaflet..." LOC_LATLONG=$(php /tmp/latlong.php "${LOC_NAME}") if [ -z "${LOC_LATLONG}" ]; then echo "Error: Lat/Long for ${LOC_NAME} not found"; echo "Update manually in /var/www/html/leaflet-example.html" else echo "Lat/Long for ${LOC_NAME} set to ${LOC_LATLONG}" sed -i.save "s/\.setView(\[[0-9]\+\.[0-9]\+,[ \t]*-\?[0-9]\+\.[0-9]\+/.setView([${LOC_LATLONG}/" /var/www/html/leaflet-example.html sed -i.save "s/L\.marker(\[[0-9]\+\.[0-9]\+,[ \t]*-\?[0-9]\+\.[0-9]\+/L.marker([${LOC_LATLONG}/" /var/www/html/leaflet-example.html fi } function update_osmosis(){ #update osmosis baseURL in configuration file WORKDIR_OSM=/home/${OSM_USER}/.osmosis if [ -f ${WORKDIR_OSM}/configuration.txt ]; then #Get the URL from http://download.geofabrik.de/europe/germany.html #example PBF_URL='http://download.geofabrik.de/europe/germany-latest.osm.pbf' UPDATE_URL="$(echo ${PBF_URL} | sed 's/latest.osm.pbf/updates/')" sed -i.save "s|#\?baseUrl=.*|baseUrl=${UPDATE_URL}|" ${WORKDIR_OSM}/configuration.txt fi } PBF_ADD='no' if [ "${1}" == '-add' ]; then PBF_ADD='yes' shift 1; fi PBF_URL="${1}"; #http://download.geofabrik.de/europe/andorra-latest.osm.pbf OSM_USER='tile' OSM_DB='gis' #Check input parameters if [ -z "${PBF_URL}" ]; then echo "Usage: $0 [-add] pbf_url"; exit 1; fi NP=$(grep -c 'model name' /proc/cpuinfo) osm2pgsql_OPTS=" -d ${OSM_DB} --number-processes ${NP} --hstore" STYLE_XML=$(grep 'XML=' /usr/local/etc/renderd.conf | cut -f2 -d=) STYLE_DIR=$(dirname ${STYLE_XML}) STYLE_FILE=$(basename ${STYLE_XML}) if [ "${STYLE_FILE}" == 'osm-carto.xml' ]; then osm2pgsql_OPTS+=" --style ${STYLE_DIR}/openstreetmap-carto.style" osm2pgsql_OPTS+=" --tag-transform-script ${STYLE_DIR}/openstreetmap-carto.lua" fi PG_VER=$(pg_config | grep '^VERSION' | cut -f4 -d' ' | cut -f1,2 -d.) #Clear renderd cache systemctl stop renderd rm -rf /var/lib/mod_tile/default/* PBF_FILE="/home/${OSM_USER}/${PBF_URL##*/}" if [ ! -f ${PBF_FILE} ]; then wget -P/home/${OSM_USER} ${PBF_URL} chown ${OSM_USER}:${OSM_USER} ${PBF_FILE} fi reload_data; systemctl restart postgresql apache2 renderd update_osmosis; update_leaflet;