2011. december 2., péntek

Bluetooth GPS + Netbook = Webes vasutas gps nyomkövető


Beszereztem egy QSTARZ 818X Bluetooth gps-t, van egy 1,5 éves Netbookom, amin ubuntu linux fut. Feltelepítettem rá az apache webszervert, postgresql adatbáziskezelőt, mapserver-t és tilecache-t. Az apache-hoz feltettem még a php, postgresql modulokat is. A pythonhoz pedig a python-bluetooth modult.

A rendszer úgy áll össze, hogy a gps bluetooth jeleit egy python scripttel leolvasom, majd egy kis feldolgozás után a psycopg2 modul segítségével egy postgresql táblába írom. Egy PHP programocska közvetítésével, a javascript GET metódusával kiolvasom a koordinátákat a fenti táblából, majd ezt az egészet rápakolom egy OpenLayers alapú web térképre.

Sajnos eléggé rosszul látszódik, a narancssárga körök a településtesten belül gps trackek:)



 Az eredményt a fenti kivágat mutatja (épp Miskolcról tartottam hazafelé a vonaton).

A webes részt egy korábbi posztban már részleteztem, ahogyan a postgresql/postgis feltelepítését is.
A javascript részt, a módosított rétegválasztóval egyelőre nem akarom publikálni (aki ért a javascripthez valószínű pillanatok alatt sokkal jobban leprogramozza, nekem + marha sok idő volt:) .

Kapcsolat a gps és a pc/adatbázis között:


A fenti két python script segítségével valósítottam meg az összeköttetést. A háttér állomány két objektuma dolgozza fel az adatokat, amit az alábbi táblába írok. 

CREATE TABLE gpgga (tipus varchar,time timestamp,szelesseg float,szelesseg_mertek varchar,hosszusag float,hosszusag_mertek varchar,fix_gps varchar,szatellitak_szama integer,hdop double precision,magassag double precision,magassag_mertek varchar,geoid_magassag double precision,geoid_magassag_mertek varchar,dgps_last varchar,dgps_id varchar,cs varchar,id serial PRIMARY KEY);

(Háttér állomány fejlécében is benne van)

Ezután készítettem még egy view táblát is, úgy gondolom, hogy ettől gyorsabb lesz.  

CREATE VIEW mobil_gps AS (SELECT * FROM gpgga ORDER BY time DESC LIMIT 1);

A szélesség, hosszúság adatok EPSG:4326 -ban jönnek, nyilván ezt triggerekkel, ill a postgis segítségével lehet cifrázni. 

Kapcsolat az adatbázis kezelő és a webes térkép között:

adatbazis.php --> Nagyon szimpla php kód

És ennyit szerettem volna megosztani:)

Nincsenek megjegyzések:

Megjegyzés küldése