Abstract
Semestrální práce spočívala ve vytvoření databáze, která by umožňovala ukládat data získaná transformací a vektorizací starých mapových podkladů. Data jsou výsledkem bakalářské práce Vývoj značených turistických cest na podkladě starých map. V bakalářské práci byla grafickým výstupem mapa zachycující vývoj cest pomocí barevného rozlišení linií dle období vzniku. Výstupem semestrální práce je grafická prezentace na WEBu na adrese http://turistika.geomatik.cz/ využívající mapové podklady z portálu Atlas.cz http://amapy.atlas.cz/api. Výstup a databáze budou využity v DP Vývoj turistických cest na území NP Šumava, která na BP navazuje.
AMapy API je služba umožňující nejen vložení mapy na stránky, ale také vytvoření nové mapové aplikace. K dispozici jsou například funkce pro vykreslení vektorových tras, pro podporu tří souřadnicových systémů, funkce pro práci s informačními bublinami a mnohé další. Součástí API jsou i předpřipravené třídy pro vlastní ovládací prvky a značky.
K dispozici je stručná dokumentace a řada příkladů. Pro získání přístupového klíče je nutná registrace. Bližší informace naleznete na stránkách AMapy API (zdroj [2]).
Data, vývoj turistických cest, jsou uložena v relační databázové struktuře na serverovém databázovém stroji PostgreSQL. Tuto databázi obsluhují na straně serveru skripty v jazyce PHP. Na straně klienta je vizualizace vytvořena pomocí nástrojů DHTML, konkrétně pomocí skriptu v JavaScriptu. K přístupu k datům (obslužným skriptům v PHP) se využívá zejména technologií AJAXU. Aplikace využívá mapové API poskytnuté portálem atlas.cz k získávání mapových podkladů se základními funkcemi ke zpracovaní dat na straně klienta.
Struktura databáze je následující:
Následuje podrobnější rozbor jednotlivých tabulek, v pořadí dle schématu. Nejprve se zaměřím na tabulku cesta, která je spolu s tabulkou bod nejdůležitější. U všech tabulek představuje podtržená položka primární klíč, položky začínající id_ pak představují cizí klíče odkazující do ostatních tabulek. Některé méně zřejmé položky jsou vysvětleny vždy pod příslušnou tabulkou.
délka - konkrétní hodnota se doplňuje při generování cest, které se vykreslují na web,
popis - představuje informace o konkrétní cestě,
jméno - odpovídá označení cesty,
id_barva - je odkaz do tabulky barev.
Další tabulkou je tabulka změna, která obsahuje informace o vzniku cest, jejich uzavření, znovuotevření, či zániku.
id_cesta - je odkaz do tabulky cest,
rok_od/ rok_do - jsou ohraničující roky dané změny,
id_zdroj_od/id_zdroj_do - jsou odkazy na zdroje, ze kterých pochází informace o změně, konkrétně se jedná o roky vydání jednotlivých mapových podkladů,
typ změny - představuje konkrétní změnu, která se s danou cestou stala, 1=vznik (obnovení), 2=zánik (uzavření).
S tabulkou změna souvisí tabulka zdroj. Její schéma je na následujícím obrázku.
popis - podrobnější informace o zdroji
oznaceni - odpovídá názvu ikonky turistické značky, která se u dané cesty vykreslí
slovne - slovní popis turistického značení
Tato tabulka spolu s tabulkou cesta tvoří základ databáze. V tabulce bod je uložena prostorová informace ve formě položky xy, která je typu point. Každý bod nese informaci o cestě, ke které náleží (položka id_cesta), dále index, který představuje jeho pořadí v posloupnosti bodů dané cesty (položka poradi). Pro každý bod je uvedeno měřítko, ve kterém se má začít zobrazovat. Měřítka jsou označena čísly 7-10 (7 = 1:125 000, 8 = 1:64 000, 9 = 1:32 000, 10 = 1:16 000). Položka id_rozcestí je nulová v případě, že bod není rozcestím.
nazev - buď oficiální z mapy nebo odvozený od nejbližšího názvu místa v okolí
informace - zajímavosti o rozcestí
napis - popisek na ikonku rozcestí
typ - rozcestí je dvojího druhu 2= s oficiálním názvem (z mapy z roku 2005), 1= s neoficiálním označením
Tato tabulka slouží k uchování informace o počátečním bodě cesty, ke kterému je směrovka vázána (id_rozcestí) a koncovém rozcestí, tedy cíli, ke kterému cesta směřuje (id_cil). Id_cesta je odkaz na konkrétní cestu, pro kterou jsou oba koncové body uloženy.
Dále následují ukázky tabulek vykopírované z databáze. K přístupu do databáze jsem využívala prostředí phpPgAdminu.
Na internetové adrese http://turistika.geomatik.cz/ si můžete prohlédnout prezentaci dat z databáze. K mapovým podkladům Atlas.cz jsem připojila další vrstvu. V první fázi se jednalo o čtvercovou síť s výpisem souřadnic. Síť jsem vygenerovala pro všechna střední měřítka. Do takto připravených dlaždic, u kterých jsem znala souřadnice levého horního rohu, jsem vykreslila jednotlivé cesty pomocí grafických method PHP.
Informace o jednotlivých cestách - historii změn, turistické značení, rozcestí a další jsem získala z databáze SQL dotazy a přenesla s využitím AJAX technologie ve výměnném datovém formátu JSON. Informace publikuji pomocí metod API AMAPY.CZ, které jsou postavené na object literal (jiný způsob zápisu Javascriptového kódu).
Na následujících řádcích jsou uvedeny dotazy pro získání směrovek konkrétního rozcestí, bodů nacházejících se v uvedené oblasti a pro zjištění typu změny, která u dané cesty proběhla. V dotazech se vyskytují náhledy smerovka_xy a bod_xy s následující strukturou smerovka_xy(id_rozcesti, id_cil, nazev, napis, typ, id_bod, xy, meritko, id_cesta, delka, oznaceni) a bod_xy(id_bod, id_cesta, poradi, meritko, id_rozc, xy, nazev, napis, typ, delka, oznaceni, jmeno).
SELECT * FROM smerovka_xy WHERE id_rozcesti = $Rozcesti;
SELECT * FROM bod_xy WHERE xy <@ box(point(-$maxY,$maxX), point(-$minY,-$minX)) AND meritko <= $scaleID;
SELECT typ_zmeny AS typ, rok_od AS pocatek, rok_do AS konec FROM zmena WHERE id_cesta = $Cesta;
Při vykreslování cest byla použita následující turistická značení a ikonky rozcestí.
Ikonky rozcestí se vykreslují na všech křižovatkách cest. Ikonkou je buď dřevěná tabule s nápisem (v případě, že se jedná o rozcestí s oficiálním názvem) anebo strom, pokud jde o rozcestí ve skutečnosti neexistující (jde o křížení cest z jiných časových období) nebo o rozcestí na mapách neznačené (Obr. 16). Ikonky jsou klikatelné. Po kliknutí na ikonku se vyhledají všechna nejbližší rozcestí včetně turistické značení, které k danému rozcestí vede. Po kliknutí na nalezené rozcestí se zobrazí cedule se všemi rozcestími na místě tohoto nově zvoleného rozcestí.
Obě ikonky mají nastavené měřítko, ve kterém se začnou zobrazovat. Ikonka neoficiálního rozcestí se zobrazuje až po větším přiblížení. Ikonka neoficiálního rozcestí se vykresluje v měřítkách 9 a 10, ikonka oficiálního rozcestí se vykreslí ve všech čtyřech měřítkách (7-10). Turistické značení se vykresluje pouze v měřítkách 9, 10. Po kliknutí na ikonku turistického značení se vypíše historie cesty.
Na dalším obrázku (Obr. 17) je zobrazena legenda pro vykreslené cesty a použitá barevná stupnice. Legenda je vytvořena tak, aby mohla nést dvojí informaci - o druhu změny, která u dané cesty proběhla a o období, ve kterém tato změna nastala. Druh změny je vyjádřen typem čáry. Časovou informaci pak vyjadřuje barva čáry, případně puntíku. Nezaniklá cesta je znázorněná jednoduchou plnou čarou, zaniklá cesta je zakreslená plnou čarou s puntíkem. Pokud u cesty proběhlo více změn, je příslušná linie vykreslena pomocí více barevných úseků s puntíky, či bez (viz legenda).
Například pokud cesta vznikla, zanikla, byla znovu obnovena a poté opět zrušena, je vykreslena následujícím způsobem: je rozdělena na opakující se barevné úseky stejné délky (každý úsek má barvu podle roku vzniku/ obnovení), barevným puntíkem na příslušném úseku linie je zachyceno uzavření/ zánik.
Výsledný výstup je na obr. 18.
Výsledky semestrální práce budou využity v diplomové práci. Pro tento účel bych chtěla provést některá vylepšení, zejména v oblasti grafického výstupu. V první řadě bych chtěla zvýšit interaktivnost klikatelných ikonek a doplnit více popisu do informačních bublin. Myslím, že by bylo zajímavé doplnit také další rastrové vrstvy, například vrstvu, kde by cesty byly rozlišeny barevně podle turistického značení.
Vysvětlení základních pojmů:
(Asynchronous JavaScript and XML) moderní webová technologie sloužící k aktualizaci obsahu stránek bez nutnosti jejich znovunačítání.
(Application Programming Interface) je rozhraní pro programování aplikací, jedná se o sbírku procedur, funkcí či tříd knihovny (programu nebo jádra operačního systému), které může programátor využívat. API určuje, jakým způsobem se tyto funkce mají volat.
je soubor technologií tvorby dynamických webových stránek na základě jazyka HTML (HyperText Markup Language).
(Hypertext Preprocessor) – je skriptovací programovací jazyk určený především pro programování dynamických webových stránek. PHP skripty jsou prováděny na straně serveru, k uživateli je přenášen až výsledek jejich činnosti.
[1] Vývoj značených turistických cest na podkladě starých map. Bakalářská práce GEMB. [online]. Copyright © 2007. Šmejkalová Martina. [2007]. Dostupné z: http://gis.zcu.cz/studium/dp/2007/Smejkalova__Vyvoj_znacenych_turistickych_cest_na_podklade_starych_map__BP.pdf.
[2] API dokumentace. [online]. Copyright © 2006-2007. Atlas.cz. [1.10.2007]. Dostupné z: http://amapy.atlas.cz/api/docs/files/AMap-js.html.
[3] Manuál PHP.. Funkce. [online]. Copyright © 1997-2006. the PHP Documentation Group. [24.3.2007]. Dostupné z: http://cz2.php.net/manual/cs/functions.php.
[4] Jak psát web, návod na HTML stránky. [online]. Copyright © 2007. Janovský Dušan. [24.3.2007]. Dostupné z: http://www.jakpsatweb.cz/.