In precedenza ho scritto a proposito della geolocalizzazione, prima con uno script piuttosto inquietante, poi con la possibilita’ di mandare latitudine e longitudine a Twitter. Questa volta invece lo script e’ innocuo, immettendo latitudine e longitudine mandiamo wget
a chiedere informazioni a GoogleMaps.
Da terminale mandiamo questo comando:
$ wget -q "http://maps.google.com/maps/geo?output=csv&oe=utf-8&ll f-8&ll=LATITUDINE,LONGITUDINE" -O -|cut -f3- -d,
ovviamente al posto di LATITUDINE
e LONGITUDINE
mettete i dati che vi interessano. Ad esempio sostituendo in questo modo:
$ wget -q "http://maps.google.com/maps/geo?output=csv&oe=utf-8&ll f-8&ll=39.216667,9.116667" -O -|cut -f3- -d,
otteniamo il seguente output:
"Viale Regina Elena, 13-21, 09124 Cagliari, Italy"
Piu’ sono accurate latitudine e longitudine piu’ sara’ accurato l’output.
Il comando e’ piuttosto semplice e sono convinto possa essere arricchito per poter ad esempio restituire un’immagine. Ma attualmente non ho le conoscenze per farlo, dovrei cercare in giro o andarmi a vedere come vengono mostrate le mappe di Google. Comunque possiamo inserire il nostro comando in uno script in Bash a due variabili (latitudine e longitudine), creiamo allora il nostro file:
# nano /usr/local/bin/getgmap.sh
incolliamoci dentro questo:
---8<--- #!/bin/bash lat=$1 long=$2 wget -q "http://maps.google.com/maps/geo?output=csv&oe=utf-8&ll f-8&ll=$lat,$long" -O -|cut -f3- -d, ---8<---
e rendiamo il file eseguibile:
# chmod +x /usr/local/bin/getgmap.sh
Fatto, a questo punto da terminale vi bastera’ scrivere ad esempio:
$ getgmap.sh 41.0225 9.559722
per ottenere:
"07026 Olbia Olbia-Tempio, Italy"
Come avete visto ora abbiamo due localizzazioni:
"Viale Regina Elena, 13-21, 09124 Cagliari, Italy"
"07026 Olbia Olbia-Tempio, Italy"
perche’ non trovare il percorso dalla prima alla seconda?
Lo possiamo fare (almeno cosi’ ero convinto prima di provarlo) con un altro script in Bash, ma prima ci occorre gpsbabel, manco a dirlo lo troviamo nei repository ufficiali di Debian, installiamolo:
# apt-get update
# apt-get install gpsbabel
Ora creiamoci il file:
# nano /usr/local/bin/percorsogmap.sh
e incolliamoci questo:
---8<--- #!/bin/bash FROM=$1 TO=$2 wget -O - "http://maps.google.com/maps?q=$FROM to $TO&output=js" 2&>/dev/null >google_map.js gpsbabel -i google -f google_map.js -o gpx -F google_map.gpx ---8<---
infine rendiamolo eseguibile:
# chmod +x /usr/local/bin/percorsogmap.sh
Adesso diamo questo comando da terminale:
$ percorsogmpa.sh "Viale Regina Elena, 13-21, 09124 Cagliari, Italy" "07026 Olbia Olbia-Tempio, Italy"
a me non va, mi restituisce un errore nell’elaborazione del file XML. Se qualcuno capisse perche’ e sapesse come risolverlo gli sarei grato se me lo spiegasse.
Nel caso qualcuno di voi riuscisse a farlo andare, potrebbe mettere insieme i due script, sistemandoli affinche’ collaborino.
Fonti:
- Reverse geocode with bash
- Google Maps XML (google)
[^] torna su | post<li> |