Vývoj turistických cest na území NP Šumava - databázové pozadí.

Semestrální práce z předmětu PDB

Martina Šmejkalová


1. AMapy API
2. Databáze:
3. Prezentace na WEBu
4. Závěr
Zdroje informací

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.

1. AMapy API

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]).

2. Databáze:

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í:

Figure 1. Obr. 1 Struktura databáze

Obr. 1 Struktura databáze

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.

Figure 2. Obr. 2 Tabulka cesta

Obr. 2 Tabulka cesta

  • 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.

Figure 3. Obr. 3 Tabulka změna

Obr. 3 Tabulka změna

  • 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.

Figure 4. Obr. 4 Tabulka zdroj

Obr. 4 Tabulka zdroj

  • popis - podrobnější informace o zdroji

Figure 5. Obr. 5 Tabulka barva

Obr. 5 Tabulka barva

  • oznaceni - odpovídá názvu ikonky turistické značky, která se u dané cesty vykreslí

  • slovne - slovní popis turistického značení

Figure 6. Obr. 6 Tabulka bod

Obr. 6 Tabulka bod

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.

Figure 7. Obr. 7 Tabulka rozcestí

Obr. 7 Tabulka rozcestí

  • 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

Figure 8. Obr. 8 Tabulka směrovka

Obr. 8 Tabulka směrovka

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.

Figure 9. Obr. 9 Tabulka cesta - ukázka

Obr. 9 Tabulka cesta - ukázka

Figure 10. Obr. 10 Tabulka změna - ukázka

Obr. 10 Tabulka změna - ukázka

Figure 11. Obr. 11 Tabulka zdroj - ukázka

Obr. 11 Tabulka zdroj - ukázka

Figure 12. Obr. 12 Tabulka barva - ukázka

Obr. 12 Tabulka barva - ukázka

Figure 13. Obr. 13 Tabulka bod - ukázka

Obr. 13 Tabulka bod - ukázka

Figure 14. Obr. 14 Tabulka rozcestí - ukázka

Obr. 14 Tabulka rozcestí - ukázka

Figure 15. Obr. 15 Tabulka směrovka - ukázka

Obr. 15 Tabulka směrovka - ukázka

3. Prezentace na WEBu

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í.

Figure 16. Obr. 16 Použité značení

Obr. 16 Použité značení

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.

Figure 17. Obr. 17 Legenda a barevná stupnice

Obr. 17 Legenda a barevná stupnice

Výsledný výstup je na obr. 18.

Figure 18. Obr. 18 Grafický výstup

Obr. 18 Grafický výstup

4. Závěr

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ů:

AJAX

(Asynchronous JavaScript and XML) moderní webová technologie sloužící k aktualizaci obsahu stránek bez nutnosti jejich znovunačítání.

API

(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.

DHTML

je soubor technologií tvorby dynamických webových stránek na základě jazyka HTML (HyperText Markup Language).

PHP

(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.

Zdroje informací

[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/.