Tips’nTricks: GoogleMaps e wget via terminale

Creato il 10 settembre 2010 da Idl3

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> | 



Potrebbero interessarti anche :

Possono interessarti anche questi articoli :