//
you're reading...
linux

csv2upi – Convertire i punti di interesse per Sygic con Linux

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.

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Follow

Get every new post delivered to your Inbox.