Riporto un piccolo script bash che ho realizzato per convertire i punti di interesse (autovelox, ristoranti, pizzerie …) scaricabili dal sito www.poigps.com nel formato upi. PoiGPS fornisce già un complesso programma (per windows e non open source) per il download e la conversione dei punti di interesse ma se per qualche motivo non potete o non volete utilizzarlo allora questo script fa al caso vostro.
Questo script estrae i punti di interesse, le icone e gli avvisi direttamente dagli archivi zip presenti sul sito www.poigps.com e li converte nel formato compatibile con il navigatore Sygic. Per la conversione è necessario scaricare POI Convertor.exe, il tool di conversione ufficiale sygic, e posizionarlo nella directory dello script. Facendo un breve giro su internet ho scoperto (correggetemi se sbaglio) che al momento non si conoscono le specifiche del formato upi e tutti i programmi in circolazione utilizzano “POI Convertor”. Le icone invece vengono convertite tramite ImageMagick presente (credo) in quasi tutte le distribuzioni linux.
Lo script è il seguente:
#!/bin/bash
## csv2upi v.1.0.2 by steej
## Script per la conversione dei punti di interesse dal formato csv (fornito da poigps.com) al formato upi (sygic). Lo script estrae automaticamente i punti di interesse, le icone e i suoni associati direttamente dagli archivi zip scaricabili dall'area downloads di www.poigps.com e li converte nel formato compatibile per il navigatore sygic. Per la conversione lo script utilizza tramite WINE il programma POI Convertor.exe, scaricabile dal sito www.sygic.com
## Istruzioni
## Scaricare POI Convertor e posizionarlo nella stessa directory dello script. Scaricare i punti di interesse che si vuole convertire in formato zip e posizionarli sempre nella stessa directory. Eseguire lo script. Lo script crea una directory contenente i file upi, le icone e gli avvisi da copiare sul navigatore.
echo ------------------------
echo csv2upi v.1.0.2 by steej
echo -----------------------------------------------------------------------
echo 'Conversione punti di interesse dal formato csv (fornito da poigps.com)'
echo 'al formato upi (sygic)'
echo -----------------------------------------------------------------------
if ! which wine &>/dev/null ; then #Controllo su Wine
echo ERROR: Wine è non installato!
echo Wine è necessario per eseguire POI Convertor.exe, per favore installalo.
exit
fi
if [ ! -f "POI Convertor.exe" ]; then #Controllo su Poi Convertor.exe
echo ERROR: POI Convertor.exe non presente nella directory!
echo POI Convertor.exe è necessario per convertire i poi nel formato upi.
echo Scaricalo da www.sygic.com e poi copialo nella directory corrente.
exit
fi
if [ ! -d "sygic" ]; then
mkdir sygic sygic/upi/ sygic/icons/ sygic/sounds/
else
if [ ! -d "sygic/upi" ]; then
mkdir sygic/upi/
fi
if [ ! -d "sygic/icons" ]; then
mkdir sygic/icons/
fi
if [ ! -d "sygic/sounds" ]; then
mkdir sygic/sounds/
fi
fi
if ! ls *.zip &> /dev/null ; then
echo 'ERROR: Nessun file zip presente!'
echo '- Controllare di aver inserito gli archivi zip nella directory di csv2upi'
exit
fi
let 'ncsv=0'
let 'nzip=0'
for poizip in *.zip ; do
unzip -d sygic/ -o "$poizip" '*.csv' '*.bmp' '*.ogg' &> /dev/null
cd sygic
if ! ls *.csv &> /dev/null ; then
echo 'WARNING: Nessun file csv presente!'
echo '- Il file '$poizip' non contiene alcun punto di interesse'
else
let 'nzip=nzip+1'
for file in *.csv ; do # per ogni elemento della directory corrente ...
a=${#file} # lunghezza nome file
let 'b = a - 4' # calcola lunghezza nome file senza estensione
noext=${file:0:b} # estrae nome file senza estensione
echo Sto processando $noext...
let 'ncsv=ncsv+1'
# Conversione icone
mogrify -units PixelsPerInch -resize 27x27! -density 72 -colors 256 -compress None $noext*.bmp
# Conversione POI
sed 's/,/\t/g' $file > $noext.txt
wine '../POI Convertor.exe' $noext.txt $noext.bmp $noext.upi #conversione poi
mv -f $noext.upi upi/
mv -f $noext*.bmp icons/
if [ -f $noext*.ogg ]; then
mv -f $noext*.ogg sounds/
fi
rm -f $noext.txt $noext.csv
done
fi
cd ..
done
echo -----------------------------------------------------------------------
echo $nzip archivi estratti.
echo $ncsv punti di interesse convertiti con successo.
Lo script è stato testato su Ubuntu 10.04, ma può essere usato su qualsiasi distribuzione linux.
I file prodotti sono stati testati con il Sygic McGuider 7.71 e con il nuovo Sygic Mobile Maps 10 (8.06) su un Nokia 5800 XpressMusic.
Istruzioni
- create una nuova directory
- create nella directory il file csv2upi copiando e incollando lo script qui in alto
- rendetelo eseguibile: chmod +x csv2upi
- scaricate POI Convertor.exe dal sito www.sygic.com e posizionatelo all’interno della directory
- scaricate gli archivi zip relativi ai poi di vostro interesse e posizionateli nella stessa directory di sopra
- eseguite lo script con ./csv2upi ed attendete che la conversione termini
- copiate upi, icone e avvisi nelle cartelle del navigatore
buon divertimento!
CHANGELOG
1.0.2 correzione di altri piccoli bug
1.0.1 correzione di alcuni piccoli bug
1.0 primo rilascio
QUESTO è il link relativo alla discussione sul forum di poigps.com
Non esitate a lasciarmi commenti per consigli, richieste o suggerimenti.
ps: se invece avete un navigatore TomTom vi segnalo quest’altro script per la conversione dei punti di interesse nel formato ov2
Discussione
Non c'è ancora nessun commento.