Mise à jour sélective sur Nominatim
par spin0us le 6 juin 2013Pour celles et ceux qui auraient installé leur propre serveur Nominatim, vous n'avez peut-être pas importer la totale. Le fichier planet-latest.osm.bz2 tapant dans les 28G (à l'heure actuelle), l'importation prend des plombes.
Il suffit donc de choisir les pays ou régions que vous souhaitez importer sur geofabrik.de puis d'utiliser ce script de mise à jour filtrant les éléments que vous aurez choisis.
Script de mise à jour journalière
#!/bin/bash
### Country list
COUNTRIES="europe/isle-of-man europe/kosovo"
NOMINATIM="/var/Nominatim"
### Foreach country check if configuration exists (if not create one) and then import the diff
for COUNTRY in $COUNTRIES;
do
DIR="$NOMINATIM/updates/$COUNTRY"
FILE="$DIR/configuration.txt"
if [ ! -f ${FILE} ];
then
/bin/mkdir -p ${DIR}
/usr/bin/osmosis --rrii workingDirectory=${DIR}/.
/bin/echo baseUrl=http://download.geofabrik.de/${COUNTRY}-updates > ${FILE}
/bin/echo maxInterval = 0 >> ${FILE}
cd ${DIR}
/usr/bin/wget http://download.geofabrik.de/${COUNTRY}-updates/state.txt
fi
FILENAME=${COUNTRY//[\/]/_}
/usr/bin/osmosis --rri workingDirectory=${DIR}/. --wxc ${FILENAME}.osc.gz
done
INDEX=0 # false
### Foreach diff files do the import
cd ${NOMINATIM}/updates
for OSC in *.osc.gz;
do
${NOMINATIM}/utils/update.php --import-diff ${NOMINATIM}/updates/${OSC} --no-npi
INDEX=1
done
### Re-index if needed
if ((${INDEX}));
then
${NOMINATIM}/utils/update.php --index
fi
### Remove all diff files
rm -f ${NOMINATIM}/updates/*.osc.gz
Il vous suffit donc de spécifier les éléments que vous avez importés au
début dans la variable COUNTRIES (ici europe/isle-of-man
europe/kosovo) et le chemin d'accès au répertoire d'installation de Nominatim
dans NOMINATIM.
