Vývoj aplikace pro mobilní sběr dat

Vladimír Havlík
Institut Geoinformatiky
VŠB - Technická univerzita Ostrava
tř. 17. Listopadu
708 33 Ostrava - Poruba
E mail: bigf@centrum.cz

Abstract

TTato diplomová práce se zabývá navržením a zpracováním aplikace pro mobilní sběr dat. V práci jsou popsány typy mobilních klientů a možnosti programování pro mobilní klienty, použité programové prostředí pro vývoj mobilního klienta. Součásti diplomové práce je popis vytvořeného programu v prostředí Java, GeoTools a databáze PostgreSQL/PostGIS.

Klíčová slova : GIS, PDA, mobilní klient, GPS, Java, GeoTools, PostGIS

Abstrakt

The main goal of this thesis it to design and create aplication for mobile data colection. In thesis are described types of mobile clients, programming possibilities for mobile clients and software development kit used for mobile client design. Main aplication was created using Java, GeoTools and database PostgreSQL/PostGIS.A part of Thesis is software manual.

Klíčová slova : GIS, PDA, mobile clients, GPS, Java, GeoTools, PostGIS 3

Úvod

Rychlý vývoj komunikačních technologií společně s rozvojem přenosných počítačů přinášejí do oblasti geoinformatiky možnost jednoduše a rychle sbírat data přímo v terénu. Data sbíraná přímo v terénu za pomoci družicových polohových systémů jsou velmi aktuální a mohou nejlépe popsat aktuální stav jak po stránce popisné, tak i po stránce polohové. Vytvořená data je možné díky velké dostupnosti různých bezdrátových komunikačních technologií jednoduše a efektivně přenášet a za pomoci sítě Internet i publikovat. Speciální programy pro sběr dat v terénu jsou často součástí komplexnějšího systému GIS aplikací, které jsou tvořeny komerčními firmami. Ty většinou prosazují své řešení od formátů, přes stolní aplikace až po databáze. V dnešní době se hodně prosazují open source projekty. Ty většinou nejsou součástí komplexnějších systémů, ale dokážou být vhodnou a finančně únosnou alternativou ke komerčnímu řešení. Právě program pro mobilní sběr dat nepatří k typickým nekomerčním programům. To je dáno především omezeným použitím vhodného hardware i takto nasbíraných dat. Tato diplomová práce se zabývá vytvořením aplikace založené na volně dostupných programových prostředcích, která bude určena pro sběr prostorových dat přímo v terénu.

Cíl práce

Výsledkem práce má být jednoduchá aplikace pracující na mobilním zařízení, která umožňuje sběr dat a ukládání dat za pomoci systému GPS v prostředí open source. Tento program bude navržen pro mobilní zařízení, zvláště s ohledem na možnosti zobrazovací a ovládací. Je tedy nutné prozkoumat možnosti mobilních klientů po stránce technického vybavení a také po stránce programového vybavení. Podle toho vybrat vhodné programové vybavení a vhodné vývojové prostředí. Program bude zobrazovat běžně používaná prostorová data ve vektorovém formátu (Esri Shapefile) i rastrovém formátu. Bude vybaven základními funkcemi pro manipulaci s těmito daty (zoom, posun, přidat vrstvu, odebrat vrstvu, identifikace prvku, atd.). Za pomoci programu bude možné tvořit nová prostorová data, a to ručně vykreslením na obrazovku nebo za pomoci systému GPS. Vytvořená data se budou ukládat lokálně nebo do prostorové databáze. Přes prostorovou databázi bude možné naměřená data sdílet a využívat i v jiných programech. Program bude zvládat komunikaci s GPS přijímačem - připojit jej a používat data přijímačem poskytovaná. Je tedy potřeba zjistit, jakým způsobem nejlépe komunikovat s GPS přístroji a jakým způsobem předávat data. Zadání práce předpokládá použití open source produktů a obecně se přiklání k možnostem využití nekomerčního programového vybavení. 5

Typy mobilních zařízení

Mobilní zařízení lze rozdělit na několik kategorií, především dle jejich velikosti a hmotnosti. Jako základní bych zvolil toto rozdělení :

Mobilní zařízení do ruky

Malé mobilní platformy jsou velmi omezená zařízení, jejichž omezení je dáno způsobem použití. Konkrétní hardwarové možnosti vycházejí z určení platformy a její velikosti.Typické malé mobilní zařízení má malý barevný display se středním rozlišením, běžně 320x240 (640x480) bodů, a je určeno pro přenášení v ruce. Vstup je řešen nejčastěji pomocí dotykového displeje v kombinaci s dotykovým perem. Výpočetní výkon těchto zařízení je velmi proměnlivý. Od velmi slabých procesorů určených pro ukládání poznámek až po rychlé procesory, které se blíží frekvencí taktu k 1 GHz. Omezené jsou i možnosti vstupu z hardwarových portů. Časté je omezení na jeden či dva porty, které jsou ještě sdíleny s paměťovou kartou. Běžná je již možnost připojení k internetu, to buď za pomoci infraportu, s využitím rádiové technologie Bluetooth v kombinaci s mobilním telefonem, nebo za pomoci technologie Wi-Fi. Nevýhodou spojení přes infraport je ztráta mobility, protože paprsek je nutno udržovat v poměrně úzkém úhlu mezi zařízeními. Náhradou infraportu je Bluetooth, kde není nutnost přímé viditelnosti a dosah je až 10 metrů. Technologie Wi-Fi umožňuje přímé propojení mobilního zařízení s internetem přes rádiové spojení na frekvenci 2,4 GHz. Práce s běžnými příručními mobilními zařízeními v terénu je komplikována jejich relativní křehkostí, která je cenou za velikost a mobilitu. Nejsou odolná proti nárazu při pádu, jsou citlivá na vyšší či nižší teploty, nezvládají rozmary přírody nebo mají omezenou výdrž baterie. Toto se výrobci snaží řešit zařízeními s různými specifikacemi (voděodolné, prachuvzdorné, nárazuvzdorné... ). Výsledkem je pak zvětšená velikost (horší mobilita) nebo vyšší cena (horší dostupnost). Programové vybavení na bázi operačního systému je nečastěji zastoupeno platformou od firmy Microsoft - Pocket PC. Dnes existuje Pocket PC ve 3 verzích: 2000, Pocket PC 6 2002 a Pocket PC 2003. Někdy bývá tato platforma označován jako WinCE a operační systém Windows Mobile. Mezi velké výhody tohoto operačního systému patří česká lokalizace a kompletní sada důležitých programů od firmy Microsoft. Typickými zástupci vyrábějícími zařízení pro tento operační systém jsou Compaq (mobilní zařízení IPAQ), Hewlett Packard (Jornada) nebo Casio (Cassiopea). Další důležitou platformou je PalmOS. Je jedním z nejstarších operačních systémů pro mobilní zařízení. Je zpravidla levnější než PocketPC a nemusí být vždy vybaven multimediálními možnostmi a barevným displejem, na rozdíl od PocketPC. Mezi výrobce patří firmy Palm (Palm) nebo Sony (Clié). Mezi další platformy patří platforma EPOC vyvíjená konsorciem Symbian, která je zastoupena především v kategorii "chytrých" mobilních telefonů . Mezi dostupné alternativní operační systémy patří zmenšené verze operačního systému Linux, a to především Familiar Linux[1]. Familiar Linux je provozován především na zařízeních IPAQ a vystačí si s jakýmkoliv základním modelem iPAQu. Familiar Linux je standardní linuxový systém, takže není problém s instalací programů. Omezeni jsme pouze velikostí paměti a výpočetním výkonem. Dalším alternativním operačním systémem je SavaJe OS[2] , který je postaven na bázi Java 2 Platform, Standard Edition (JavaOS). Dle popisu platformy SavaJe podporuje Javu 2 Standard Edition API včetně "balíčků" a tříd, dále grafické uživatelské rozhraní J2SE, bezpečnost na úrovni Java 2 a další standardy používané v J2SE. Na operačním systému SavaJe je možné spustit software napsaný pro J2SE, a to s přirozeně větší rychlostí a efektivitou plynoucí z daného řešení operačního systému. Smartphones jsou v podstatě mobilní telefony disponující větším displejem a dostatečným početním výkonem, které se nejčastěji používají jako osobní organizéry a mobilní telefony. Tyto platformy se prozatím nepoužívají pro sběr dat, ale je možné očekávat další bouřlivý vývoj v oblasti Smartphones, který je dán miniaturizací a neustálým zvyšováním výpočetního výkonu. Zastávám názor, že se v budoucnu vytratí rozdíl mezi PDA a Smartphones.

Příruční mobilní zařízení

Příruční mobilní zařízení je kříženec mezi PDA a přenosným počítačem. Disponuje velkým dotekovým displejem, dostatečným početním výkonem, velkým paměťovým prostorem, velkou výdrží baterií, a to vše při přijatelné velikosti a váze zařízení. Typickým zástupcem této skupiny jsou tablety. Základním rozdílem mezi tabletPC a notebookem je dotyková obrazovka, dodávaná s elektronickým perem s něhož pomocí něhož můžete psát po displeji stejně jednoduše, jako na list papíru. Dotykové pero je řešeno systémem elektromagnetické indukce. Výhodou tohoto systému je, že nereaguje na rušivé vlivy (prsty na displeji apod.), ale pouze na speciální pero. TabletPC také disponuje velkým počtem vstupů a výstupů, jako jsou USB či FireWire porty, připojení k sítí (LAN) často i integrovanou možností bezdrátového přenosu dat přes Wi-Fi nebo Bluetooth. Malé mobilní disky v tabletech převyšují svou kapacitou 30GB a některá zařízení jsou vybavena i optickými mechanikami. Možnost textových vstupů v terénu podporuje i odnímatelná přenosná klávesnice. Využitelnost v terénu zvyšují ochranná gumová pouzdra, které pomáhají odolávat povětrnostním podmínkám a zároveň usnadňují držení tabletu. TabletPC je nejčastěji vybaven operačním systémem na bázi Windows XP (některé typy už i Linux). Windows XP Tablet PC edition je upravenou verzí klasických Windows XP professional, takže zde není problém s kompatibilitou programů. Systém byl doplněn o funkce digitální inkoust, rozpoznání písma i hlasových příkazů. Existují i speciální "military tablety", které jsou odolné přírodním vlivům. Mezi zápory této velmi mobilní platformy patří především cena, která je vyšší než cena srovnatelného notebooku. Své užití najde všude tam, kde je potřeba používat počítač za chůze, respektive ve stoje, a PDA z jakéhokoliv důvodu nevyhovuje.

Přenosné počítače

Přenosné počítače poskytují omezenou mobilitu při velkém početním výkonu. Jejich velkou nevýhodou při mapování je neskladnost při vstupu dat, která je dána jejich tvarem. Není možné se pohybovat, držet notebook a zadávat data najednou. Notebooky jsou již dnes ve výkonu a výbavě plně srovnatelné se stolními počítači. Předností těchto zařízení je možnost pracovat na stejném zařízení v kanceláři i v terénu. Subnotebooky jsou zpravidla menší a lehčí než notebooky a oproti cenově srovnatelným notebookům disponují menším početním výkonem a vybavením Využití přenosných zařízení v terénu vidím tam, kde je nutné mít dostatečný početní výkon, který umožní rychle zpracovat a vyhodnotit data naměřená například z handheldPC.

Mapové komponenty GeoTools

Pro usnadnění práce s prostorovými daty jsem se rozhodl pro open source mapovou komponentu GeoTools, napsanou v jazyce Java, využívající standarty OGC. GeoTools poskytují širokou možnost vstupu dat, připojení databází, rozšíření za pomocí pluginů. Standarty OGC jsou uplatněny například při ukládání dat, při tvorbě filtrů, při definici stylů nebo při práci s geometrií. Mezi podporované vektorové formáty GeoTools patří

Při srovnání s ostatními mapovými komponentami, se kterými jsem pracoval, vycházejí GeoTools jako nejlepší po stránce programovacích možností, a to díky dostupnosti zdrojových kódů a vlastním programovým možnostem komponenty. Velký problém této komponenty však spočívá v jejím mizivém až žádném popisu programových možností. Komentář zdrojového kódu často chybí a příklady použití jsou také velmi omezené. Vlastní popis ve formě příručky neexistuje. Často jsem potřebné informace vyhledával ve fóru a odvozoval od pravděpodobné logiky ostatních mapových komponent. Tuto komponentu nelze doporučit tomu, kdo nemá zkušenosti s jinými mapovými komponentami. Pro začátečníka je velmi nevhodná právě pro nulový popis logiky práce s mapovou komponentou.

PostGIS

PostGIS je rozšíření databáze PostrgeSQL, která umožňuje spravovat prostorová data a provádět nad nimi operace. Celý projekt je na bázi open-source a zaštiťuje ho organizace Refraction Research. PostGIS podporuje od verze 0.9 prostorové objekty uložené ve tvaru "Simple Feature for SQL", což je jeden ze standardů definovaných konsorciem OpenGIS. Tyto objekty jsou uloženy v databázi ve tvaru v Well-Know Text (WKT).PostGIS také umnožuje definovat v jakém souřadnicovém systému jsou data. Pro tyto účely má vytvořenou metadatovou tabulku (Spatial_ref_sys), ve které uchovává popisné informace o souřadnicových systémech. Rozšíření obsahuje také základní nástroje pro analýzu dat. Tyto funkce jsou popsány v manuálu PostGISu.

GPS simulátory

GPSim V 2.2.0 je jednoduchý program umožňující generovat věty ve standardu NMEA 0183 nebo připojený textový soubor s uloženými větami standardu NMEA 0183 číst a posílat do výstupu. V modu generování vět vysílá tři věty, ve kterých je možné navolit pouze polohu, výšku a rychlost. Tyto věty pak vysílá ve zvolených intervalech (0,2,4 sekundy) do výstupu. Ve druhém módu čtení a posílaní vět otevře soubor se záznamem. Ten následovně čte, případně aplikuje filtr a to buď časový nebo vylučovací. Při časovém filtru je možné posílaní zpráv urychlit nebo zpomalit, při vylučovacím filtru se omezí vysílaní zpráv pouze na konkrétní zprávy (6 typů). Tímto způsobem se dá i "přehrát" záznam cesty z logovacího souboru GPS přijímače. GPS simulator Samotné použití programu je velice jednoduché a velmi mi usnadnilo práci s GPS komponentou v projektu. Druhým programem který jsem využíval je SailSoft GPS simulator 2.1.5. Program má podobné vlastnosti jako GPSim, ale je schopen pouze generovat věty. Generuje 6 základních vět a umožňuje daleko větší nastavení parametrů těchto vět. Mezi volené hodnoty patří poloha, výška, výška nad geoidem, rychlost, směr, hodnoty DOPů a rychlost vysílání zpráv. Má i poměrně rozsáhlé nastavení hodnot výstupu COM portu. Aktuální verze 3.x je již placená. Ale je možné na internetu najít starší verzi (2.x), která je bez omezení.

Program Mapovač Ben11

Program Mapovač Ben11 je hlavním výsledek praktické části diplomové práce (dále jen program). Pro program byl zvolen programovací jazyk Java, právě pro jeho možnost přenositelnosti mezi platformami a dostupnosti vhodné mapové komponenty GeoTools. Jeho nevýhodou je větší náročnost na hardware, což není úplně ideální pro mobilní zařízení typu handheldPC. Také je problém s interpretem jazyka java pro platformu Windows Mobile, která není ve verzi J2SE dostupná. Pro platformu Linux Familiar existují interpreti jazyka Java (Blackdown java [19]) založené na bázi J2SE. Pro předávání dat byla zvolena databáze PosgreSQL s rozšířením PostGIS pro možnost propojení s jinými programy a s mapovou komponentou.

Filozofie programu

Mapovač Ben11 je jednoduchý program, který umí zobrazovat a pořizovat data přímo v terénu. Uživatel může číst a ukládat vektorová data z lokálního disku nebo databáze. Z lokálního disku může načíst vektorová i rastrová data. Pokud je přítomen GPS přijímač může zobrazit aktuální polohu a zaznamenat ji. Mapovač není určen pro samostatné použití. Předpokládá se, že je to pouze mobilní doplněk k stolnímu GIS programu. Velikost zobrazení je navržena na displej s rozlišením 320x240 bodů a ovládání programu je navrženo na dotykové pero či na myš pravým tlačítkem. Při ručním vstupu atributů je počítáno s interním programovým vstupem dat (klávesnice na displeji).

Výsledky praktických testů

Praktické testy probíhaly v areálu Vysoké školy báňské Technické univerzity Ostrava. Jako pokladovou vrstvu jsem použil technickou mapu okolí areálu vysoké školy. Pro měření byl použit zásuvný 12kanálový GPS modul s rozhraním Compact Flash. Jako mobilní klient byl použit TabletPC s 1Ghz procesorem, 40GB HDD, 512 MB RAM s operačním systémem Microsoft WindowsXP a nainstalovanou poslední dostupnou verzi Javy ( J2SE v 1.4.2_08 SDK). TabletPC byl vybaven slotem pro připojení Compact Flash karet. Při mapování jsem zkoušel mapovat základní geoprvky. Pro bod jsem použil lampy veřejného osvětlení, pro linie vyšlapané cesty v trávníku a pro polygon parkoviště. Kombinoval jsem zadávání bodů z GPS přijímače s ručním zakreslováním. Při vlastním měření jsem nezjistil, žádný výraznější problém s programem. Jediné, co způsobovalo nepříjemnosti je vypadnutí GPS přijímače ze slotu při manipulaci s tabletem. To vedlo k zaseknutí programu a nutnému násilnému ukončení. Na vině je zřejmě prostředí Java. Samotná práce byla bezproblémová a program splnil požadavky, které vyplývají ze zadání. Naměřená data zobrazená na platformě TabletPC

Závěr

Cílem této diplomové práce bylo navrhnout a vytvořit program pro mobilní sběr prostorových dat za pomoci systému GPS. Tento cíl se podařilo splnit. V průběhu práce byl hledán nejoptimálnější programovací jazyk pro mobilního klienta společně s vhodnou mapovou komponentou, která by umožnila všechny základní operace s daty. Nakonec byl vybrán jazyk Java právě pro jeho možnost přenositelnosti mezi platformami a poměrně přehlednému kódu vhodnému pro další úpravu. Nevýhodou tohoto jazyka je malé rozšíření interpretů J2SE pro příruční mobilní zařízení, pro které je program primárně navržen. Mapová komponenta Geotools poskytuje široké možnosti manipulace s daty. Výhodou Geotools jsou otevřené zdrojové kódy. Naopak velkým problémem je chybějící popis a absence vhodných příkladů. Při práci s GeoTools se objevily problémy, které vznikaly jako důsledek nedostatečného popisu komponent. V práci na projektu způsobovaly velké potíže, což se projevovalo zdlouhavým řešením poměrně jednoduchých problémů, které by objasnil jednoduchý příklad či tutoriál. Pro ukládání dat jsem zvolil databáze PostgreSQL s rozšířením PostGIS pro široké možnosti připojení k GeoTools nebo jiným programům. Práce s databází je ve vlastním programu i jiných programech jednoduchá a nenáročná. Nad rámec zadání práce jsem ještě vytvořil jednoduchý návrh aplikace s využitím mapového serveru vhodného pro malé rozlišení. Samotný program není plně hotov a doladěn. Sice splňuje požadavky zadání, ale objevují se v něm chyby, které jsou odhalitelné jenom delším testováním v terénu.Ale práci jsem již obhájil, a kdo jsi myslí že tento řádek sem nepatří, tak ho obdivuju, že to dočetl až jsem, když mi napíše email tak se mu rád omluvim. Další možností využití programu je využití jako "grafický základ" pro práci s mapovou komponentou. Například jako grafické rozhraní pro import/export dat do databáze PostgreSQL/PostGIS. Pokud by se program rozšířil o některé další funkce, mohl by být velmi zajímavou alternativou ke komerčnímu programu ArcPad, který je používán při výuce globálních navigačních a polohový systémů.