geo - mapová aplikace pro J2ME
geo
Aplikace geo zpřístupňuje uživateli geografická data prostřednictvím mobilního zařízení s podporou technologie Java (J2ME).
Je postavena na architektuře klient-server, přičemž veškerá geografická data (jak grafická, tak i popisná) jsou uchovávána v serverové části aplikace.
Aplikace umožňuje:
mít vždy po ruce mapu s aktuálními informacemi (např. poloha sledovaných objektů, předpověď počasí, dopravní situace)
plynule pohybovat mapovým výřezem
vyhledávat objekty v mapě
zobrazovat informace o objektech (v podobě textu s obrázky)
vyhledávat nejkratší trasy
využívat formulářové rozhraní ke komunikaci s uživatelem
Downloads
Následující soubory můžete nahrát do Vašeho mobilního zařízení nebo emulátoru. Aplikace vyžaduje spojení se serverovou částí a je proto nutné si nejdříve aktivovat datové připojení u svého operátora a nastavit v zařízení odpovídající datový profil.
Veškerá ukázková data jsou pouze demonstrační a neodpovídají skutečnosti.
GeoClient.JAD - Java Descriptor obsahující lokální URL
GeoClient.JAD - Java Descriptor obsahující globální URL
GeoClient.JAR - Java Archive
Popis aplikace
Klientská část (J2ME)
aplikace uživateli umožňuje:
výběr zobrazené mapy
prohlížení mapového výřezu
uživatel tlačítky ovládá kurzor (ukazatel do mapy)
k překreslení výřezu dochází až na vyžádání (po stisku tlačítka "5")
překreslování mapy na displeji je realizováno s plynulým posuvem původního výřezu
zjištování a nastavování aktuální souřadnice mapového výřezu
vyhledávání bodů zájmu (lokalizovaných objektů v mapě). Aplikace dovoluje uživateli stanovit na seznam vrácených objektů následující omezení:
název objektu (popř. fragment názvu objektu) - např. "kon" vyhovuje objektům "Konečného náměstí", "Konopná", ale i např. "Ulice L. Konečné"
maximální vzdálenost objektu od k aktuální souřadnice (v jednotkách odpovídajících zvolené mapě)
maximální počet vrácených záznamů
aplikace podporuje dva formáty mapových obrázků
PNG - nativní
vlastní formát - monochromatický, bez komprese - na menších obrázcích menší velikost dat než PNG
systémové požadavky na mobilní zařízení
podpora J2ME - CLDC 1.0 / MIDP 1.0 (vyhovují všechny dnešní mobilní telefony s Javou)
aplikace nevyužívá žádné proprietární rozšírení API
Serverová část (J2SE)
obsahuje množství různých map - každá mapa má tyto atributy:
titulek
měřítko
datový soubor s mapou - podporované formáty:
PNG, JPEG - podporované standardním Java API kompletní data jsou udržována v paměti (+) rychlejší odezva (-) větší nároky na virtuální paměť
24-bitové BMP (případně i komprimované GZIPovou kompresí) data získávána pro každý dotaz zvlášt ze souboru (+) minimální nároky na virtuální pamet (-) pomalejší odezva na dotaz
databáze bodů zájmu
dvojice souřadnice - titulek
uložena ve formátu CSV (případně i komprimované GZIPovou kompresí)
každý záznam na nový řádek souboru
atributy jsou odděleny středníkem
definice souřadného systému mapy
zadán pomocí souřadnic tří libovolných bodů v mapě
ostatní souřadnice jsou dopočítány lineární transformací
možnost nastavení defaultní (výchozí) mapové souřadnice
definice metriky mapy
metrika je zadána pomocí souřadnic a vzdálenosti libovolných dvou bodů v mapě v odpovídajících jednotkách
výstupní formát (PNG nebo monochromatický formát)
možnost globálních nastavení (převážně kvůli DoS útokům):
omezení maximálním počtem vrácených záznamů
omezení maximálních rozměrů poskytovaných obrázků
aplikace je spustitelná ve dvou režimech:
jako samostatná serverová aplikace (podporuje HTTP i TCP spojení)
jako HTTP servlet - součást J2EE aplikačního serveru (pouze HTTP protokol)
systémové požadavky:
Java Runtime Environment 1.4.x
na některých platformách vyžaduje určitý typ grafických operací spojení JRE s X-serverem
Několik screenshotů z mobilního telefonu Siemens S55
Příklad č. 1: nalezení a zobrazení objektu v mapě
Příklad č. 2: nalezení nejbližších objektů
Příklad č. 3: zobrazení mapového výřezu podle souřadnice
Struktura dat
Grafická data
Je možné využít dva různé přístupy:
kompletní rastrová data jsou při inicializaci načtena jednorázově do virtuální paměti - data jsou uložena v obrazových formátech podporovaných Java API (formáty png, jpeg, gif)
k datům se přistupuje pro vyřízení každého dotazu zvlášť - je podporován jen formát 24-bitového BMP. Data mohou být případně ještě komprimována GZIPovou kompresí
Popisná data
Jsou podporována dvě možná uložení popisných dat:
data jsou uložena ve formátu CSV se strukturou:
X;Y;NÁZEV
Ukázka dat:
49.175793;16.627485;Lomená 49.17507;16.623827;Lužná 49.175594;16.62545;Slunná 49.174877;16.624258;Potoční 49.174805;16.62296;Mlýnský náhon 49.17392;16.62501;Pompova 49.17339;16.627895;Lomená 49.17421;16.62838;Sladkého 49.17418;16.629229;Bratří Žůrků 49.17399;16.62268;Hněvkovského 49.174202;16.621279;Mariánské náměstí 49.173756;16.628098;Kratina
data jsou uložena v databázi s nainstalovaným JDBC driverem.
Struktura tabulky s popisnými daty:
X float Y float NAME varchar(50)
Author: Tomá# Darmovzal tomas dot darmovzal at gmail
Generated by DocumentPreProcessor (dpp) - DPP source