Uno script per creare mappe personalizzate

Salve a tutti!

Vi segnalo un articolo che ho appena scritto sul mio blog, Appunti, Scoperte e Invenzioni. In tale articolo spiego come realizzare un semplice script di bash che permette in modo totalmente automatico di generare una mappa come immagine, a partire dalle coordinate di latitudine e longitudine desiderate;

lo script si occupa di scaricare i dati dal db di OSM, compilarli in una mappa vettoriale, trasformarla in un png con dimensioni e risoluzione desiderate, e aggiungere intestazione, footer e scala chilometrica. Per chi già segue il mio blog questo è un agglomerato di alcuni post precedenti, in cui ho trattato le fasi del rendering singolarmente. Un ottimo sistema per chi desidera iniziare ad esplorare il mondo della mappatura, e un buon punto di partenza per chi vuole provare a realizzare mappe personalizzate.

Spero vi possa essere utile, e spero che non ci siano errori :-) In ogni caso commentate, commentate, commentate che a me fa solo piacere :-D D

PicciMario

Neo FreeRunner con SHR: finalmente un telefono utilizzabile!

Come molti di voi sapranno, nel luglio 2008 un'intraprendente società taiwanese ha rilasciato la prima versione "mass market" del Neo FreeRunner, il primo telefono/palmare completamente open source della Storia. Sono passati molti mesi dal rilascio, e tutto il mondo si è precipitato a creare la propria versione del sistema operativo per il palmare, partendo da zero o "portando" qualcosa che già esiste (è quest'ultimo il caso di Debian e Gentoo). Comunque, la FIC paga un consistente numero di sviluppatori per lavorare ad una versione "ufficiale" del sistema operativo, chiamato Openmoko, e che in linea teorica vorrebbe diventare IL sistema operativo per dispositivi palmari, compatibile con quanti più modelli possibili. Non si può creare un sistema operativo universale per palmari in un anno, ma almeno sul Neo FreeRunner le cose sembrano andare per il meglio. Dopo qualche delusione dovuta all'ultima versione di Openmoko (datata a Dicembre 2008), e dopo aver cercato di riparare ai continui freeze installando il kernel compilato da Trevino, ho deciso di spostarmi definitivamente sulla versione più aggiornata del sistema, SHR (Stable Hibrid Release), che pur essendo disponibile in versione "unstable", offre una stabilità e un look veramente accattivanti.

Cos'e SHR?

Quando si è pensato ad un sistema operativo per palmari, si è avuta la necessita di creare un framework basato su Dbus al quale tutti gli sviluppatori potessero fare riferimento per creare le proprie applicazioni. Questo framework per palmari non esisteva, e ci sta pensando un impiegato della FIC, Mickey Lauer. Come per il desktop, si è scelto di rispettare le specifiche di Freedesktop.org, creando Freesmartphone.org, al fine di ottenere una base Dbus comune per tutte le distribuzioni GNU/Linux per palmari. Quindi, SHR è una versione di Openmoko che ha come base FSO (Free the Smart*P*hone), che dovrebbe rappresentare lo stack del futuro, come Freedestkop.org lo è adesso per tutte le distribuzioni desktop GNU/Linux (compresa Ubuntu). Per questo, il nome SHR: "rilascio ibrido stabile". Insomma, alla FIC si sta costruendo il futuro di GNU/Linux sui palmari.

Quale versione installare?

SHR è disponibile sia in versione "stable" che "unstable": quella stable - non ancora disponibile - sarà un freeze delle caratteristiche alla data prescelta. La unstable attualmente disponibile è in costante lavorazione, ma è sufficientemente stabile da poter essere usata come telefono quotidiano, più di Openmoko 2008.12. È inoltre disponibile la versione "lite" del filesystem di root, più leggera e veloce da scaricare sul PC e flashare sul Neo.

Perché SHR (Pro)?

  • Perché il suo stack basato su FSO è il futuro di GNU/Linux su dispositivi mobile;

  • Per la maneggevolezza di una versione di Illume personalizzata per la distribuzione e molto finger-friendly;

  • Per il power management: la batteria in standby arriva a durare anche 60 ore, contro le 24 - 30 ore di Openmoko di dicembre.

  • Perché e aggiornata costantemente, al contrario di Openmoko 2008.12;

  • Perché non utilizza Qtopia, che appesantisce il sistema a fronte di una suite PIM comunque incompleta e non perfettamente aderente alle esigenze di Openmoko;

  • Per l'eliminazione dell'eco quando e attivo il viva voce;

  • Per un manager delle impostazioni in Python completamente personalizzabile ed espandibile, e che comunque comprende tutto ciò di cui c'è bisogno per controllare il palmare (al contrario del "Settings" di Openmoko).

  • Perché supporta i messaggi speciali dell'operatore (per esempio il numero 12315# della Wind per visualizzare i minuti residui di una certa promozione);

  • Perché finalmente funziona il led BLU/ROSSO sotto il tasto Power;

  • Perché la gestione di GSM, GPS, Bluetooth e Wifi è completamente centralizzata e attivabile su richiesta dei vari programmi (questo sistema lo spiegheremo meglio in seguito).

Perché evitarla? (Contro)

  • Per il bug del Gtk+-fastscaling (facilmente risolvibile con un --force- depends, come vedremo di seguito)

  • Per qualche minore problema di instabilità (mi è capitato un paio di volte in una settimana che la vibrazione continui anche dopo aver risposto ad una telefonata, costringendomi al riavvio del cell).

Installazione

Personalmente ho installato shr-lite-image-om-gta02.jffs2 e uImage-2.6.28-[...].bin, ovvero le ultime versioni del filesystem di root e del kernel (suggeritemi nella mailing list ufficiale). Ricordo al gentile lettore che le immagini possono essere comodamente flashate nel Neo usando NeoTool. La prima cosa da fare dopo il primo boot è riavviare il Neo, perché al primo boot il GSM non funziona. Fatto ciò, potremo constatare al successivo riavvio che di default funziona il collegamento ad internet via USB e funziona anche SSH.

Sistemare il tasto Power

Di default, alla pressione del tasto Power, appare prima un menù che comprende le opzioni per lo standby, lo spegnimento e la chiusura della sessione (proprio come un PC!), poi il Neo va in standby. La spiacevole quanto inutile apparizione del menù può essere evitata dando i seguenti comandi:

  1. xrandr -o 1

  2. fare click sulla chiave inglese presente nell'angolo in alto a sinistra della barra superiore

  3. fare click su "input" e poi su "key binding"

  4. cancellare la voce: "Execute" e applicare le modifiche con il tasto "Apply"

Risolvere il problema del pacchetto gtk+-fastscaling

In SHR (ed FSO se ricordo bene) il pacchetto gtk+-fastscaling è stato rinominato semplicemente in gtk+, ma molti programmi non lo sanno, per questo hanno come dipendenza il fastscaling che in realtà è già installato nel sistema come "gtk+". Quando si vanno ad installare pacchetti del genere, può capitare di ricevere un errore e si interromperà l'installazione. Per ovviare a questo problema, sarà sufficiente ridare il comando di installazione, inserendo la dicitura _ --force-depends_ tra opkg e install. Ad esempio, per installare Navit:

opkg --force-depends install navit

Inserire un tasto per lo spegnimento

Dopo aver eliminato il menù che appare alla pressione del tasto Power, non ci sarà più modo di spegnere il Neo senza un terminale. Possiamo ovviare a questo problema creando uno shortcut sul desktop. Basterà inserire il seguente file, che chiameremo shutdown.desktop nella cartella /usr/share/applications/:

[Desktop Entry]
Encoding=UTF-8
Version=0.7
Name=Shutdown
Type=Applicat=UTF-8
Version=0.7
Name=Shutdown
Type=Application
Comment=Show System Processes
Terminal=true
Exec=shutdown now
Path=
Icon=/usr/share/icons/openmoko-standard/128x128/apps/openmoko-system-default.png
Categories=ConsoleOnly;System;Application
GenericName=Process Viewer
Categories=Office;
Exec=shutdown now

Una nota su GPS, Bluetooth, GSM e Wifi

Il nuovo framework FSO su cui si basa SHR ha il grande vantaggio di tenere spenti tutti questi servizi all'avvio del sistema. Inoltre, esso si pone come "gestore" di questi servizi tra le applicazioni ed il kernel; in altre parole, noi non avremo bisogno di "attivare" il GPS prima di aprire TangoGPS o Navit: sarà sufficiente aprire uno di questi programmi, e poi ci penserà il sistema operativo ad attivare il GPS. Nella stessa maniera, quando chiuderemo tutti i programmi che utilizzano il GPS, il ricevitore verrà spento. Il Wifi ed il Bluetooth devono essere accesi e spenti "manualmente" dall'apposito menù Settings. Anche il GSM come il GPS viene acceso solo su richiesta dal sistema operativo, ed in particolare questa richiesta avviene nel momento stesso dell'accensione del Neo, quindi a noi sembra che venga acceso di default. Se vogliamo risparmiare sulla batteria e non ci serve il GSM, possiamo disattivarlo dal menù Settings. Molto comodo, non trovate? Niente di tutto questo esiste su Openmoko 2008.12.

TangoGPS e Yaouh!

Yaouh! è un'applicazione scritta da un italiano, Carlo Minucci, che scansiona tutte le mappe presenti in TangoGPS e le aggiorna scaricando da OpenStreetMap solo le parti che sono state aggiornate dopo l'ultimo rendering settimanale (che avviene ogni giovedì solitamente). Purtroppo, a partire dall'ultima versione di TangoGPS, la 0.9.5, i repository delle mappe del programma vengono scritti all'interno del codice stesso del programma, e non sono più reperibili da Yaouh!, che non riesce quindi a scaricare alcun aggiornamento. Per ovviare a questo inconveniente, almeno per le mappe "standard" di OpenStreetMap (quelle di Mapnik, per capirci), è sufficiente sostituire nel file ~/.gconf/apps/tangogps/%gconf.xml questa riga:

OSM

con questa

OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/home/root/Maps/OSM|0

rispettando gli spazi e la sintassi del resto del file. Attenzione però: il file in questione viene sovrascritto da TangoGPS ad ogni chiusura del programma, quindi dopo aver modificato il file aprite Yaouh! e aggiornate le mappe senza aprire/chiudere TangoGPS, altrimenti avrete perso tempo...

Navit

La versione più aggiornata di Navit installabile sul Neo è quella SVN, e può essere installata dando i seguenti comandi:

echo src navit http://download.navit-project.org/navit/openmoko/svn >/etc/opkg/navit-feed.conf
opkg update
opkg install navit

Scarichiamo la cartografia italiana di OpenStreetMap aggiornata settimanalmente fornita da CloudMade, da qui, e dopo averlo estratto dall'archivio, spostiamo il file nella cartella ~/.navit. Quindi, bisognerà sistemare il file di configurazione, con il seguente comando:

cp /usr/share/navit/navit.xml ~/.navit/navit.xml

Adesso inseriamo nel file una nuova dicitura "mapset", più o meno nei pressi del rigo 148:

<mapset enabled="yes">
           <map type="binfile" enabled="yes" data="/home/root/.navit/italy.navit.bin" />
</mapset>

Fatto ciò, possiamo ancora fare in modo che Navit visualizzi i tasti "+" e "-" per lo zoom, per ingrandire e diminuire lo zoom della mappa durante la navigazione, portando da "enables=no" a "enables=yes" le voci ai righi 53 e 54:

<osd enabled="yes" type="button" x="-96" y="-96" command="zoom_in()" src="zoom_in.xpm"/>
<osd enabled="yes" type="button" x="0" y="-96" command="zoom_out()" src="zoom_out.xpm"/>

Tutte le indicazioni per il tweak dell'interfaccia grafica di Navit sono qui. Per usare Navit è molto utile ruotare lo schermo in orizzontale; è possibile ottenere una comoda applicazione con tanto di icona nel menù per farlo, installando questo pacchetto.

Qualche screenshot

Ottenere immagini planetarie di OpenStreetMap con Marble

Ogni blog ha il suo post “tecnico”, oggi è il mio turno… in questa guida vedremo come catturare immagini ad alta risoluzione del nostro pianeta, su cui è stata applicata come texture la cartografia di OpenStreetMap. La guida non è farina nel mio sacco, ma è stata allegramente tradotta dal sito ufficiale del progetto. Le immagini possono essere utili per presentazioni, talk, diapositive ecc. Dico questo perchè la risoluzione del file è a discrezione dell’utente, anche molto alta, ma la qualità dell’immagine non è generalmente buona per la stampa. Purtroppo non ho ancora avuto tempo di testare la guida.

  • Diventare root
su
  • Presumendo di aver già installato Marble (peraltro già presente nei repository di Ubuntu 8.10), modificare il file /usr/share/kde4/apps/marble/data/maps/earth/openstreetmap/openstreetmap.dgml cambiando la riga
<downloadUrl protocol="http" host="a.tile.openstreetmap.org" path="/" />

in

<downloadUrl protocol="http" host="a.tah.openstreetmap.org" path="/Tiles/tile/" />

ed eliminando tutte le altre due righe “downloadUrl”.

  • Installare i pacchetti necessari a simulare un desktop gigante:
apt-get install xvfb x11xvnc xvnc4viewer imagemagick netpbm

mkdir /tmp/marblefb
  • Nel comando che segue, selezioniamo la risoluzione che ci interessa ottenere:
Xvfb -ac&amp;amp;nbsp;:1 -fbdir /tmp/marblefb -screen 0 4096x4096x24

x11vnc -scale .5 -display&amp;amp;nbsp;:1
  • Apriamo una finestra vuota e visualizziamo Marble, sostituendo nel secondo comando qualasiasi risoluzione abbiamo scelto di adottare:
vncviewer localhost&amp;amp;nbsp;:0

DISPLAY=:1 marble -geometry 4096x4096+0+0
  • Adesso giostrate con Marble fino a quando la figura ottenuta non vi piacerà, quindi date il comando per estrapolare l’immagine, che verrà salvata in /tmp/marble.png:
<code>xwdtopnm < /tmp/marblefb/Xvfb_screen0 | pnmtopng > /tmp/marble.png</code>

Se ne avete voglia, inviatemi pure i vostri screens planetari!

Ottenere immagini planetarie di OpenStreetMap con Marble

Ogni blog ha il suo post "tecnico", oggi è il mio turno... in questa guida vedremo come catturare immagini ad alta risoluzione del nostro pianeta, su cui è stata applicata come texture la cartografia di OpenStreetMap. La guida non è farina nel mio sacco, ma è stata allegramente tradotta dal sito ufficiale del progetto. Le immagini possono essere utili per presentazioni, talk, diapositive ecc. Dico questo perché la risoluzione del file è a discrezione dell'utente, anche molto alta, ma la qualità dell'immagine non è generalmente buona per la stampa. Purtroppo non ho ancora avuto tempo di testare la guida.

  • Diventare root

    su

  • Presumendo di aver già installato Marble (peraltro già presente nei repository di Ubuntu 8.10), modificare il file /usr/share/kde4/apps/marble/data/maps/earth/openstreetmap/openstreetmap.dgml cambiando la riga

in

<downloadUrl protocol="http" host="a.tile.openstreetmap.org" path="/"  />

ed eliminando tutte le altre due righe "downloadUrl".

  • Installare i pacchetti necessari a simulare un desktop gigante:

    apt-get install xvfb x11xvnc xvnc4viewer imagemagick netpbm
    mkdir /tmp/marblefb
    
  • Nel comando che segue, selezioniamo la risoluzione che ci interessa ottenere:

    Xvfb -ac :1 -fbdir /tmp/marblefb -screen 0 4096x4096x24
    x11vnc -scale .5 -display :1
    
  • Apriamo una finestra vuota e visualizziamo Marble, sostituendo nel secondo comando qualsiasi risoluzione abbiamo scelto di adottare:

    vncviewer localhost :0
    DISPLAY=:1 marble -geometry 4096x4096+0+0
    
  • Adesso giostrate con Marble fino a quando la figura ottenuta non vi piacerà, quindi date il comando per estrapolare l'immagine, che verrà salvata in /tmp/marble.png:

    xwdtopnm < /tmp/marblefb/Xvfb_screen0 | pnmtopng > /tmp/marble.png
    

Se ne avete voglia, inviatemi pure i vostri screens planetari!

State of the Map

Press Release (italiano)

State of the Map 2009 ospitato nei Paesi Bassi

Amsterdam, 9 febbraio 2009 – La Fondazione OpenStreetMap è lieta di annunciare che l’annuale conferenza State of the Map avrà luogo ad Amsterdam dal 10 al 12 luglio 2009. State Of The Map 2009 è la terza conferenza internazionale organizzata dalla Fondazione OpenStreetMap. OpenStreetMap è la mappa di tutto il Pianeta, liberamente editabile.

Il 10 luglio la conferenza avrà come centro il nascente mondo commercial che ruota attorno ad OpenStreetMap. Sabato e domenica, invece, vedranno incontrarsi la comunità mondiale di mappatori liberi, la quale discuterà di nuove idee, sviluppi futuri e dei vari “State of” di molti Paesi del mondo

Il Concern Congres Centrum Amsterdam(CCC) ospiterà State Of The Map 2009. Questo nuovo centro congressi è posizionato nel centro città di Amsterdam, con splendida vista sulla città. Il CCC si trova a pochi passi da Waterlooplein ed è facilmente raggiungibile.

Per ulteriori informazioni, visita il sito web della conferenza: www.stateofthemap.org
Per maggiori informazioni su OpenStreetMap: www.openstreetmap.org

Il passante di Mestre è già su OSM

dopo il record del terminal 5 di Heathrow, anche in Italia possiamo vantare un record di aggiornamento rispetto alle mappe commerciali.

Inaugurato solo un paio di giorni fa, ecco apparire, in tutto il suo splendore, il passante di Mestre per il quale occorre ringraziare Simone che dovendo partecipare ad una conferenza a Trieste ha percorso la nuova bretella.

http://www.openstreetmap.org/?lat=45.5208&lon=12.1786&zoom=12&layers=B000FTF

Il passante di Mestre

Il passante di Mestre

A dire il vero mancano gli svincoli, ma non ho dubbi sul fatto che a brevissimo appariranno anche loro.

OpenRouteService per tutta europa

Ci è appena giunta notizia che da oggi il sito web OpenRouteService.org, dal quale è possibile calcolare i percorsi automobilistici o ciclistici o pedonali, è in grado di calcolare i percorsi per tutta l’europa.
OpenRoute è uno dei primi servizi che si basano sul DataBase di OpenStreetMap. Tra pochi giorni dovrebbe essere possibile includere anche i civici nelle ricerche (ovviamente se il civico non è inserito nel DB di OSM verrà ignorato)

Il Fundraising è andato bene

Anche se non è ancora stato chiuso (se arrivano più soldi si possono comprare più server…), possiamo dire che il primo fundraising nella storia di OSM è stato un successone. In meno di 48 ore le offerte hanno raggiunto le 10mila dell’obiettivo.

Nel momento in cui scrivo siamo quasi a 16mila sterline, soprattutto grazie al contributo di 5000 sterline versato da Google. Google, infatti, da tempo segue l’evoluzione del nostro progetto e partecipa agli StateOfTheMap.

Altro sostanzioso contributo (2000 sterline) è arrivato da cloudmade, ditta fondata da alcuni OSMers.

Restano notevoli, invece, le assenze di altre realtà che sono legate ad OSM quali, per esempio, ITO, Nestoria, AND (anche se, ad onor del vero, questa ha donato molto più che soldi in passato).

Raccolta fondi OSM per nuovi server

Sulla mailing list inglese di OpenStreetMap, ieri, Steve ha inviato una mail invitando a donare per la raccolta fondi di OSMF mirata all’acquisto di nuovi server che andranno a potenziare l’architettura del progetto.

L’idea è di averli pronti per lo switch over weekend (22-23 marzo) durante il quale si passerà dalle api 0.5 alle 0.6.

L’aggiornamento al nuovo strato di API è fondamentale perché sono stati aggiunte strutture dati che dovrebbero rendere più agevole la gestione del versioning e del patrolling.

L’obiettivo del found rising è di 10mila sterline inglesi e dal lancio di ieri ne sono già state raccolte più di tremila.

L’invito anche ai mappers italiani è quello di partecipare andando qui:

http://donate.openstreetmap.org