0.1.1 • Published 3 years ago

gps-network-tracking-system v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

TRACKING/STORING SYSTEM OF GPS TRACKS/POSITION In realtime or deferred time with geographic data from postgresql db in geojson format

SISTEMA DI TRACCIAMENTO/ARCHIVIAZIONE TRACCE GPS In tempo reale o differito con dati geografici provenienti da postgis in formato geojson

Postgis installation: http://www.rigacci.org/wiki/doku.php/tecnica/gps_cartografia_gis/postgis

Installation: create z4k user create geodata role create geodata db

ALTER DATABASE geodata OWNER TO z4k;

ALTER DATABASE geodata SET datestyle TO "ISO, DMY";

restore db:
	pg_restore -Fc -d geodata geodata.dump

dump db:
	pg_dump -Fc -d geodata > geodata.dump

create gpsd istance to local with follow command, or with gpsfake installed in system:
	$ ./gpsfake-one

create multiple virtual istances of gpsd for each .nmea file in ./tracks directory:
	$ ./gpsfake-multiple start
	
make a ssh tunneling on port 2947(gpsd default) to the remote gpsd:
	$ ./tunnel

Requirements: php5 PDO gpsbabel gpsd gpsd-clients python-gps postgresql-8.4 http://goo.gl/RDlJl postgresql-8.4-postgis postgis http://goo.gl/n6lTh

Recommends: qgis gmapcatcher tangogps

Components: index.php Struttura della pagina con mappa e filtro tracce

config.php
	Definisce i dati di connessione al db e alcune funzioni utili

geojson.devel.js
	Genera l'interfaccia e la mappa openlayers.

geojson.styles.js
	Definisce gli stili delle tracce gps nella mappa.

getpostgis.php
	Estrae e converte in geojson i dati posizione da postgres filtrati per
	gpsid, giorno, ora.

getgpsd.php
	Restituisce i dati dell'ultima posizione da gpsd/gpsfake.
	Fa una richiesta POLL.

getgpx.php
	Restituisce codice geojson con le coordinate di un file gpx sul server specificato come
	parametro GET, crea una sessione per poter incrementare la posizione letta
	nel file gpx. Utile per Debugging.

gpsd2geojson.php
	Crea una connessione permanente con gpsd di tipo WATCH generando codice
	geojson in STDOUT.
	Funziona come serverside e come script BASH.
	Legge i dati json da gpsd e incapsula altri DATI arbitrari nel pacchetto.
	Crea una sessione (nel file sess_gpsid-X dove X e' il gpsid, di default 3)
	che permette di incrementare l'identificativo della traccia ad ogni nuova
	connessione con gpsd.
	Accetta i parametri:
		$ gpsd2geojson.php [raw|timeout] [port]
	se specificato raw, mostra dati grezzi ricevuti da gpsd e termina esecuzione.

geojson2postgis.php
	Inserisce dati geojson dentro postgres.
	Funziona come serverside e come script BASH.

gpsfake-one
	Esegue gpsfake installato sul sistema sulla porta 2947 con un solo file nmea.
	Stoppa il demone gpsd se gia in esecuzione.

gpsfake-with-port
	Versione modificata di gpsfake (richiede: python-gps) che accetta come
	parametro -P la	porta di ascolto.

gpsfake-multiple
	Demone che esegue piu istanze parallele di gpsfake su porte diverse.
	Utilizza gpsfake-with-port.
	Legge tutti i file .nmea che trova in ./ e si mette in ascolto dalla
	porta 2948 in poi, accetta parametri start/stop/status.

gpx2nmea
	Script che converte file gpx in nmea, per esse utilizzati da gpsfake.

tracks
	Directory in cui vengono letti tutti i file .nmea da gpsfake-multiple

pg-gps-clear
	Svuota la tabella gps, con i dati delle posizioni.

pg-today-clear
	Cancella i dati della tabella gps inseriti oggi.

pg-latest
	Mostra gli ultimi dati inseriti nella tabella gps.

gpsd.ports
	Elenco delle porte in cui sono in ascolto i demoni gpsd di ogni dispositivo gps.
	Questo file viene rigenerato da gpsfake-multiple, ad ogni porta corrisponde un
	file .nmea nella directory tracks

track-one
	Script che inserisce i dati provenienti da gpsd/gpsfake nel db postgres
	mettendo in comunicazione gpsd2geojson.php e geojson2postgis.php.

track-multiple
	Script che inserisce i dati provenienti da gpsd nel db postgres, mette in comunicazione 
	gpsd2geojson.php e geojson2postgis.php.
	Inserisce contemporaneamente i dati di diversi gps le cui porte sono specificate in gpsd.ports

tunnel
	Proietta la porta 2947 di gpsd/gpsfake in remoto tramite un tunnel ssh.

hg-pre-commit
	evento mercurial, crea backup del database postgres nel changeset attuale

hg-update
	evento mercurial, ripristina il database postgres dal file di backup del changeset(geodata.sql.gz)