‘gps’ Category

foto geotaggate

aprile 26th, 2010

sottotitolo: “la tecnologia ci rende stupidi ma anche no, ovvero come fare i turisti senza necessariamente ricordarci la strada”

da un po’ di tempo esistono le foto geotaggate, da un po’ meno di tempo esistono le macchinette fotografiche con il gps integrato per mappare automaticamente le foto. lo fanno ovviamente anche gli smarthphone.

tutto ciò è fighissimo e ti permette di ricordarti il punto esatto in cui hai fatto una foto così, nel caso ti addormenti durante il viaggio in macchina, hai comunque le coordinate gps nel caso tu voglia tornare in quel punto.

ok, noi andiamo, attiviamo il gps e scattiamo le foto, ma come fare ora per tirare fuori i dati gps dalla foto? ma è semplicissimo, i dati gps stanno dentro i dati exif delle foto e ora vi spiegherò come ritirarli fuori, usando linux.

ci sono due modi:

1) è installare il pacchetto exif (su debian apt-get install exif) e poi lanciare exif nomefile.jpg e, in mezzo a tutti i dati exif, ci sono un paio di righe con le coordinate gps. questo risulta un po’ scomodo vista la mole di dati

2) potete installare il pacchetto gpsbabel (su debian apt-get install gpsbabel) e poi lanciare gpsbabel -i exif -f nomefile.jpg e il risultato è tipo questo:

carlo@carlo:~/foto$ gpsbabel -i exif -f 2010-04-25 16.21.32.jpg
Sun Apr 25 18:21:30 2010
43.513981N 12.738664E 2010-04-25 16/2010-04-25 16 457.000000
carlo@carlo:~/foto$

ed ecco i nostri dati gps pronti all’uso (sono i primi due), se li prendete e incollate così come sono dentro google maps avete il punto esatto (con le tolleranze tipiche del gps) di dove è stata scattata la foto.

gtkaddpoi 0.6

aprile 3rd, 2009

Ho aggiornato gtkaddpoi con la funzione per esportare un POI dentro i bookmark di Navit.

Navit si tiene i bookmark in ~/.navit/bookmark.txt in questo formato

mg:13.006126 43.847579 type=bookmark label=”Mia”

in cui l’unica particolarita’ e’ mettere prima la longitudine e poi la latidudine, e non viceversa come avviene di solito.

una volta scoperto questo particolare, fare il programma viene da se.

Distanza tra due macchine in tempo reale

aprile 2nd, 2009

continuando i precedenti esperimenti, ho scritto un pezzo di codice in python per calcolare la distanza tra due veicoli in movimento, che siano collegati ovviamente in qualche modo, nel mio caso col wi-fi.

dopo aver configurato la rete wi-fi ad-hoc bisogna lanciare questo script:

#!/usr/bin/python

import os
import string
import time
import sqlite3
import math
import sys

//ip = raw_input(‘nother IP: ‘)
//ip=ip.rstrip()
t = raw_input(‘Set interval (sec): ‘)
t=t.rstrip()

while 1>0:
command=”gpspipe -w -n 8 | grep GLL”
out=os.popen(command)
gpsdata= out.read()
gpsdata=gpsdata.split(” “)

command_r=”gpspipe -w -n 8 192.168.1.2:2947| grep GLL”
out_r=os.popen(command_r)
gpsdata_r= out_r.read()
gpsdata_r=gpsdata_r.split(” “)

if gpsdata[0] ==”":
print “no gps fix”
time.sleep(10)
else:
latA = float(gpsdata[3])
lonA = float(gpsdata[4])
latB = float(gpsdata_r[3])
lonB = float(gpsdata_r[4])

r = 6372.795477598

radLatA = math.pi * latA / 180
radLonA = math.pi * lonA / 180
radLatB = math.pi * latA / 180
radLonB = math.pi * lonB / 180

phi = abs(radLonA – radLonB)

p = math.acos( (math.sin(radLatA) * math.sin(radLatB)) + (math.cos(radLatA) * math.cos(radLatB) * math.cos(phi)) )

distanza = p * r

print str(distanza)[0:7]

time.sleep(int(t))

che altro non fa che collegarsi al proprio gpsd e a quello remoto e, prendendo di volta in volta le coordinate, ne calcola la distanza.

dai test effettuati, nel tragitto per arrivare in pizzeria, la distanza massima tra le due macchine e’ stata di 122 metri (questo pero’ non so se sia stato reale oppure qualche errore nel prendere le coordinate gps per via del brutto tempo qualche altro fattore)

un’altra cosa che ho notato, che pero’ non ho verificato se sia vero o meno, e’ che quando si perde il segnale wi-fi per la troppa distanza, i due telefoni si ricollegano una volta riavvicinati.