Mivel a TIVEDA-ban használt ESP8266 összesen 96Kbyte rammal rendelkezik, aminek nagy részét az alap rendszer elfoglalja, ezért az iGO-val vagy a Waze-el ellentétben nem volt lehetőségem arra, hogy valódi, az utakat is tartalmazó térképet töltsek be. Ennek hiányában viszont egy ellenőrző ponthoz közeledve nagyon nehéz lett volna eldönteni, hogy az oda vezető úton, vagy egy párhuzamos utcában halad-e az autós. Így bár egyszerűnek tűnik, de nem működik az a megoldás, hogy csak a kapuk koordinátáit tárolom el, és a pozíció alapján az azoktól légvonalban mért távolságot számolja a készülék.
Ennél egy kicsit bonyolultabb, de jobb eredményt adó megoldást választottam: a "térkép" valójában zónákat jelent, amikbe belépve a készülék riaszt.
Az alábbi útmutatót azok figyelmébe ajánlom, akik esetleg segítenének a térkép hibák javításában, vagy saját térképet szeretnének készíteni.
A térkép szerkesztésére a mindenki által elérhető google-earth alkalmazást használom. A rendőrség oldalán megtalálható egy lista, az összes VÉDA kapu pontos GPS koordinátáival együtt. A google earth a koordináták beírása után az adott helyszínre ugrik. Ekkor fogom a felső menüsorból a "poligon" eszközt, majd egyszerűen körülrajzolom az útszakasz a kaput megelőző és követő 300-400 méteren. Egyszerű esetben ez valahogy így néz ki:
Mivel takarékoskodnom kell a TIVEDA memóriájával, a legtöbb zóna csak egy négyszög, az úttest mellett 4-5 méter ráhagyással, jellemzően legfeljebb ennyi a GPS vevő pontatlansága.
Néha azonban az út kanyarodik annyit, hogy nem fér el egy négyszögben, vagy más úttestek is beleesnek, ahol már nincs szükség figyelmeztetésre. Sok esetben ezt is egy ötszögből meg lehetett oldani, mint itt:
Az egyes poligonokat a beazonosíthatóság kedvéért elneveztem, különösebb jelentősége a névnek viszont nincsen. A megjegyzés mező viszont fontos: ide lehet beírni a sebességhatárt, az alábbi formában:
limit: 50
A készülék ebből kiszámolja az egyes figyelmeztetési szinteket.
A nagyobb forgalmú autópályákon igyekeztem elkerülni, hogy a másik oldali kapu miatt is riasszon, illetve itt fordul elő az is, hogy csak egy oldalon található kapu. A GPS pontatlansága miatt azonban ráhagyással kellett számolnom. Ezekben az esetekben a megoldást az jelentette, hogy az adott zónához megadható egy útirány, és a készülék csak akkor riaszt ha a gépjármű ebbe az irányba +-30 fok halad.
Ennek szerkesztése kicsit trükkösebb: azért, hogy az irányt ne szemre kelljen kitalálnom, ilyen esetekben egy egyenest veszek fel a térképre, általában a zónában az útfelület felett, vagy azzal párhuzamosan. Ennél a Dunakeszinél lévő kapunál a fehér vonalat kell (nagy nézetben) nézni:
Az irányt a végpontok sorrendje határozza meg: mindig az elsőnek felvett ponttól a második felé haladva fog a riasztás bekapcsolni.
Az irányegyenest a riasztási zónával megegyező névvel kell felvenni, ahogy az a fenti képen baloldalon látszik. Ez alapján fogja ugyanis a konverter a zónához rendelni.
És persze volt pár eset, ahol nem lehetett elkerülni, hogy viszonylag nyakatekert poligont hozzak létre, mint itt Ságváron:
Az elkészült térképet végül kml formátumban exportáltam, ez letölthető innen. Mindenkit arra kérek, hogy tartsa tiszteletben a projekt nyílt forráskódú licencét, és csak akkor használja fel, ha a módosításait hajlandó megosztani másokkal is.
Ebből egy php scripttel állítottam elő azt a bináris formátumot, amit a mikrokontroller is könnyen tud értelmezni. Ha viszont valaki javításokat végezne a térképen, de nem tud php-t futtatni, akkor elég, ha a módosított kml-t eljuttatja nekem.