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