VirtualGPS: Software pro určování pozice bez GPS modulu (smartphone i Pocket PC)

-I když většina dnešních komunikátorů disponuje GPS přijímačem, najdou se i výjimky, u kterých si na navigační funkce prostě musíte nechat zajít chuť. Jedno řešení se ale přece jenom nabízí. Není sice tak přesné, jako klasická GPS navigace, ale ve spoustě případů může dostačovat. Řeč není o ničem jiném, než o určování pozice na základě informací z BTS stanice. My se v dnešním článku podíváme na aplikaci VirtualGPS od společnosti KamLex Engineering Solutions, která umí určit polohu telefonu i bez GPS. Orientuje se totiž právě podle toho, jaké BTS (GSM vysílače) vidí váš telefon. Tento nápad jako první komerčně uvedly v život Google Maps zabudované v Apple iPhone. Pár měsíců poté se začala podpora objevovat i v ostatních telefonech a to přes rozšíření jednoho z AT příkazů, který v nové specifikaci umí vrátit i identifikátory BTS. Telefonů, které by ovšem tento příkaz v rozšířené verzi měly a uměly tudíž s Google Maps spolupracovat je zatím poskrovnu a tak jsem se zatím spíše setkal s tím, že funkce My Location (Moje pozice) nebyla podporována.

Rozhodně tento příkaz neumí můj starší smartphone T-Mobile SDA. Jak jsem ale záhy zjistil netřeba věšet hlavu. Procesor Texas Instruments OMAP 730, který na sobě integruje ARM jádro a DSP jádro zajišťující GSM komunikaci, má totiž mezi těmito procesory sdílenou část paměti a přímo z ní lze vyčíst všechny potřebné informace. KamLex si toto uvědomil a tak jeden z režimů podporovaných VirtualGPS je právě přímý přístup do paměti a přečtení hodnot z ní.

Informace: Tento článek původně vyšel na autorově blogu i-logout.cz.

Jak to funguje prakticky? Pustíte VirtualGPS, ono se připojí na Internet a kontaktuje CellID databázi (případně použije hodnoty v lokální cache, pokud je tam najde). KamLex nabízí editor souborů s CellID cache, takže je možné si přidat vlastní souřadnice BTS vysílačů. Zjistí z ní polohy BTS, které vidíte, a podle toho vypočítá a vrátí vaše souřadnice na virtuálním COM portu v standardním NMEA protokolu. V Google Maps si posléze vyberete v nastaveních port, na kterém je GPS a Google Maps se k němu připojí. Tlačítko 0 v Google Maps pak na mapě ukáže vaší polohu. Prosté a jednoduché.

Video: První spuštění VirtualGPS

Udělal jsem po Praze několik pokusů a vesměs jsem byl spokojen. Určování polohy na tomto principu samozřejmě nelze použít na věci jako je geocaching nebo klasická navigace, ale pokud se potřebujete zorientovat na mapě, tak je příjemné, když nemusíte zadávat do vyhledávání vaši současnou polohu, protože ji (byť s nepřesností v řádech stovek metrů) máte. Podle následujících obrázků si můžete udělat sami představu, jak VirtualGPS funguje. Vlevo nahoře je vždy VirtualGPS, vpravo nahoře Google Maps a dole pak obrázek z Mapy.cz, kde je modře označené skutečné místo, kde jsem polohu zjišťoval a červeně poloha, kterou udala VirtualGPS.

-
První zjišťování polohy proběhlo při snídani v McDonnald’s na Václavském náměstí. Google Maps ukázaly, že se nacházím u Národního muzea, což je zhruba 100m odsud, prakticky stačí jen přejít silnici.

-
Podruhé jsem zkusil určit polohu cestou do práce. Tady už byla nepřesnost poměrně větší, zhruba půl kilometru. Zřejmě díky husté zástavbě vysokými činžáky telefon nepřijímal tolik BTS, kolik je třeba pro přesnější výpočet.

-
Potřetí jsem vybral samotný kraj Prahy – Kbely. Tady mně přesnost celkem překvapila, necelých 200 metrů vedle.

VirtualGPS má dvě varianty – Lite, která je zdarma a umí určovat polohu pouze podle veřejné CellId databáze, a pak verzi Pro, která má přístup do placené databáze BTS, umí navíc ještě i triangulaci podle WiFi sítí a poskytuje systému intermediate driver, díky kterému může k GPS přistupovat více aplikací najednou. Lite verze je zdarma, Pro verze stojí 12 USD. Odkazy pro stažení verze pro smartphone i Pocket PC naleznete na webu výrobce. Pro verzi si můžete po dobu jednoho týdne vyzkoušet ze všemi podporovanými funkcemi, do programu stačí zadat tento trial klíč 7928511.

Autor článku
Logout
image/svg+xml
+

Kapitoly článku