VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS
WEBOVÝ INFORMAČNÍ SYSTÉM TURISTICKÉHO PRŮVODCE
BAKALÁŘSKÁ PRÁCE BACHELOR‘S THESIS
AUTOR PRÁCE AUTHOR
BRNO 2010
RADIM HOŘÁK
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS
WEBOVÝ INFORMAČNÍ SYSTÉM TURISTICKÉHO PRŮVODCE WEB TOURIST-GUIDE INFORMATION SYSTEM
BAKALÁŘSKÁ PRÁCE BACHELOR‘S THESIS
AUTOR PRÁCE
RADIM HOŘÁK
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2010
Mgr. MAREK RYCHLÝ Ph.D.
Abstrakt Cílem bakalářské práce je implementovat webový informační systém turistického průvodce. Každý uživatel bude mít možnost tvorby a zobrazení textů turistických průvodců na základě navrhnutého značkovacího jazyka. Webová aplikace bude fungovat na principu wikipedie.
Abstract The goal of the bachelor’s thesis is an implementation of web tourist-guide information system. Each user would have choice to create and display tourist-guide text base on suggested markup language. Web application would work as wikipedia.
Klíčová slova Web, Wiki, PHP, JavaScript, Webová aplikace
Keywords Web, Wiki, PHP, JavaScript, Web application
Citace Hořák Radim: Webový informační systém turistického průvodce, bakalářská práce, Brno, FIT VUT v Brně, 2010
Webový informační systém turistického průvodce Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením Mgr. Marka Rychlého Ph.D.. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal.
…………………… Radim Hořák 17.4.2010
Poděkování Tímto bych chtěl velmi poděkovat především svému odbornému vedoucímu celé práce Mgr. Marku Rychlému Ph.D. za technickou podporu a pomoc při sestavování celého projektu i této odborné dokumentace.
© Radim Hořák, 2010 Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.. 4
Obsah Obsah ......................................................................................................................................................1 1 Úvod ..............................................................................................................................................3 2 Analýza dostupných služeb........................................................................................................... 4 2.1 Mapové podklady ..................................................................................................................4 2.1.1 Google maps ..............................................................................................................4 2.1.2 Mapy.cz .....................................................................................................................5 2.1.3 Amapy.cz společnosti Centrum .................................................................................6 2.1.4 Otevřený projekt OpenStreetMap ............................................................................7 2.2 Informační zdroje ...................................................................................................................8 2.2.1 Turistické cíle ............................................................................................................8 2.2.2 Turistické trasy...........................................................................................................8 2.3 Značkovací jazyky ...................................................................................................................9 2.3.1 Rozdělení značkovacích jazyků ...............................................................................10 2.3.1.1 Jazyky popisné (deskriptivní) .................................................................10 2.3.1.2 Jazyky výkonné (procedurální) ...............................................................10 2.4 Wiki technologie ..................................................................................................................11 2.4.1 Co je to wiki? ...........................................................................................................11 2.4.2 Původ wiki ...............................................................................................................11 2.4.3 Technologie .............................................................................................................11 2.4.4 Wiki klony (napodobeniny) .....................................................................................12 3 Návrh řešení.................................................................................................................................13 3.1 Javascript .............................................................................................................................13 3.1.1 Charakteristiky jazyka .............................................................................................13 3.1.2 Omezení jazyka .......................................................................................................14 3.2 Rozšíření MediaWiki ............................................................................................................14 3.3 Architektura systému............................................................................................................14 3.4 Trasy .....................................................................................................................................15 3.5 Zájmové body .......................................................................................................................16 3.6 Značkování a značkovací jazyky ...........................................................................................16 3.6.1 Značky .....................................................................................................................17 4 Implementace ..............................................................................................................................19 4.1. Vývojové prostředí a technologie.........................................................................................19 4.1.1 Jazyk PHP .................................................................................................................19 4.1.2 MediaWiki ...............................................................................................................19 4.1.2.1 Hlavní rysy MediaWiki ............................................................................20 4.2 Implementační problémy .....................................................................................................21 4.2.1 Integrace do MediaWiki ..........................................................................................21 4.2.2 Práce s kontextem značky........................................................................................21 4.2.3 Změna kódování stránek..........................................................................................25 4.2.4 Použití lokální cache ................................................................................................25 4.2.5 Integrace Mapy.cz ...................................................................................................26
1
4.2.5.1 Omezení API Mapy.cz .............................................................................26 4.3 Testování ..............................................................................................................................27 5 Možné rozšíření ...........................................................................................................................28 6 Závěr ............................................................................................................................................29
2
Úvod
1
Tato dokumentace popisuje návrh značkovacího jazyka, který jsem použil na řešení mé bakalářské práce, která se jmenuje Webový informační systém turistického průvodce. Aplikace je implementována v jazyce PHP. Cílem tohoto projektu je ulehčit práci uživateli a poskytnout mu co nejvíce turistických a mapových informací na základě zvolené značky. Aplikace funguje na principu wikipedie. Díky wiki technologii můžeme volně spolupracovat s mnoho lidmi dohromady - můžeme dokonce tvořit velké množství textu v intelektuální oblasti. Wiki technologie jsou nástroje, se kterými mnoho lidí s minimální organizací, plánováním, penězi a časem smí vytvořit něco dohromady a komunikovat např. přes internet. První kapitola popisuje analýzu projektu. Jsou zde popsané nástroje, které jsou využité v implementaci. Najdeme zde taky srovnání různých mapových podkladů pro práci s API, dále turistické zdroje, ze kterých jsou čerpány potřebné informace, úvod do značkovacích jazyků a wiki technologie. Ve druhé kapitole popisuji architekturu systému, jeho rozhraní a návrh nových značek. Ve třetí kapitole je popsána implementace systému, práce s kontextem značky, testování a důvody testování. Dále následuje popis možného rozšíření, jakým způsobem bude v budoucnu systém možné vylepšit. Poslední kapitolou je závěr, kde rozebírám můj přínos a zhodnocení projektu.
3
2
Analýza dostupných služeb
V této kapitole jsou popsané všechny implementační prostředky, které jsou využity v projektu.
2.1
Mapové podklady
V této kapitole budeme vycházet z [1]. V oblasti mapových technologií na internetu proběhl před několika lety opravdový zlom. Vše začalo 8. 2. 2005, kdy Google spustil revolučně zpracované interaktivní Google Maps. V řetězové reakci si postupně i další provozovatelé online map začali uvědomovat skrytý potenciál této služby (prodej regionální reklamy, cílená reklama, partnerství s jízdními řády apod.) a začali také investovat velké částky do její modernizace. Na českém internetu vznikly časem dva velké a velmi kvalitní mapové servery, což je ve světě celkem ojedinělý úkaz, přihlédneme-li k velikosti a významu naší země. Ještě v roce jejich vydání představil Google (jako první) u svých map aplikační rozhraní pro použití mapových podkladů i na jiných webech. Vydání API se setkalo s obrovským ohlasem [2] a nadobro změnilo podobu webu. Po celém internetu se začaly objevovat interaktivní mapy - od jednoduchých orientačních výřezů po aplikace na mapách kompletně založené. Konkurence odpověděla svými vlastními API. Ačkoliv od vydání prvních mapových API uplynulo pět let, tedy půlstoletí digitálního světa, o aktuálním stavu služeb se moc nehovoří. Popišme si tedy specifika, výhody a nevýhody jednotlivých mapových API tak, jak je známe dnes. Je nutné podotknout, že samotných mapových serverů je mnohem více (např. Mapy iDNES.cz, Yahoo Maps, Ask.com Maps & Directions, Multimap, NAVTEQ Map24, Bing Maps, aj.), ale nepovažoval jsem jejich přínos za dostatečně relevantní pro tento článek, jelikož poskytované datové podklady nejsou dostatečné pro Českou republiku a API vůbec nenabízejí, nebo má velmi omezené možnosti.
2.1.1
Google maps
Průkopník v oblasti online map. Mapový server i API samozřejmě nabízí již hodně dlouho, takže jeho služby jsou v mnoha směrech nejvyzrálejší. API je neustále vyvíjeno a pracuje se na jeho třetí verzi [3]. Není dobré se však nechat unést jeho možnostmi. Je nutné zaměřit se i na jiné rysy, důležité pro náš záměr. Mezi takové patří například skutečnost, že do češtiny začala být služba lokalizována až nedávno [4]. Dnes je již sice míra integrace map do českého prostředí na velmi dobré úrovni, ale z hlediska mapových podkladů má jednu velkou, již zmíněnou mezeru - turistická data. Google poskytuje mapy globálně a proto se mu v nich velmi špatně odráží specifika jednotlivých zemí. 4
K dispozici jsou sice terénní mapy s vrstevnicemi, ale neexistuje možnost zobrazit na nich české turistické trasy a cyklostezky. Jinak jsou podklady kvalitní, i když někdy méně přesné, než u lokálních mapových služeb. Google používá kombinaci několika zdrojů geografických map, přičemž většinu českých podkladů získává od dodavatele GEODIS Brno. Předností map je samozřejmě dostupnost podkladů pro celý svět a lákavá je rovněž představa možného budoucího napojení aplikace např. v podobě vrstvy na program Google Earth.
Obrázek 2.1.1: Náhled na mapu Google Maps
2.1.2
Mapy.cz
Mapy.cz byly prvním ryze českým projektem v oblasti nových online map a dodnes jsou lídrem lokálního trhu. Stejně jako za Google Maps stojí i za těmito mapami silná společnost. Budoucnost serveru a případný další vývoj API je celkem jistý. Seznam.cz se na rozdíl od všech ostatních českých portálů profiloval po vzoru Google spíše do společnosti, jež svou budoucnost spojuje s technologickým pokrokem, než do mediálního vydavatelství jako například Centrum Holdings. Odhadnutelné záměry potvrdili nedávným uveřejněním zprávy o vývoji nového API [5]. Současný stav API je ale celkem nešťastný. Aplikační rozhraní nabízí jen omezenou škálu funkcí, omezené mapové podklady oproti službě Mapy.cz a samotná práce s funkcemi API působí na vývojáře poněkud těžkopádně. Jeho licenční podmínky navíc nejsou tak volné jako u ostatních API a požadují registraci klíče nikoliv na doménu, ale přímo na unikátní URI, kde se má mapa nacházet. To jej pro tvorbu složitější aplikace prakticky vyřazuje ze hry. V podmínkách je také omezení na 1000 zobrazení denně a zákaz provozu map pro komerční užití, což v rané fázi projektu není velkou překážkou, ale pro budoucí rozvoj projektů ano.
5
Obrázek 2.1.2: Náhled na turistickou mapu Mapy.cz
Nové API čtvrté verze vyvíjí v Seznam.cz Ondřej Žára, autor povedeného nástroje pro tvorbu databázových schémat, WWW SQL Designer. Bohužel rozhraní je zatím stále dost nestabilní a podle autorových slov v diskuzi ani jemu stále ještě nejsou známy nové licenční podmínky. Ve výše zmíněné diskusi postupně přibývají oznámení o nových funkcích, takže se možná nového API jednou opravdu dočkáme. Kdy to však bude a za jakých podmínek bude k dispozici, to zatím nikdo neví. Mapy.cz jsou připraveny kombinací geografických dat od PLANstudio a GEODIS Brno. Turistická mapa je nejkvalitnější podobnou mapou na českém internetu - za její asi nejpodstatnější nevýhodu by se dala chápat absence velkého měřítka (turistickou mapu lze, na rozdíl od té na Amapy.cz, přiblížit jen do poměrně omezených podrobností). Seznam.cz ji poskytuje na základě dat společnosti SHOCart, která je známa svými papírovými turistickými a cyklistickými publikacemi. Je škoda, že nepoužitelné API v tomto případě brání využít tak kvalitní podklady.
2.1.3
Amapy.cz společnosti Centrum
Amapy.cz se na svět dostaly v roce 2006 pod hlavičkou portálu Atlas.cz. Ihned po představení bylo jasné, že se s nimi musí na českém trhu počítat - zpracování bylo profesionální a spolu s mapami přišlo i první, na funkce bohaté, dobře dokumentované české mapové API. Vývoj však postupně ustával a po tom, co byl Atlas.cz sjednocen s Centrum.cz pod hlavičku Centrum Holdings, nelze již kolem API pozorovat vůbec žádnou činnost ze strany provozovatele. Celou službu původně zpracoval Daniel Steigerwald, který mé doměnky de fakto potvrdil.
6
Obrázek 2.1.3: Náhled na turistickou mapu Amapy.cz
API je však opravdu velmi dobře použitelné a mapové podklady kvalitní, připravené ve spolupráci s firmou DPA. I přes API lze dokonce zobrazovat vrstvy s turistickými a cyklistickými značkami a už i zcela základní mapa disponuje vrstevnicemi. Aplikační rozhraní nabízí funkce, jež nelze najít ani u Google Maps API a podporuje několik souřadnicových systémů naráz, což je výhodné při spolupráci s jinými službami (každá požaduje body v jiném formátu). Specifikem API je integrovaný JavaScriptový framework MooTools 1.11. Výhodou je, že po vložení API do stránky lze přímo využít všech výhod frameworku a není nutné nějaký připojovat dodatečně. Nevýhodou je nemožnost vlastního výběru frameworku a také ustrnutí vývoje API, protože v důsledku toho nebyl průběžně framework obnovován a zůstal v API ve verzi 1.11, ačkoliv nedávno byly MooTools vydány již ve velmi odlišné verzi 1.2.4. Jiným zářným příkladem zastarání budiž kompatibilita s Internet Explorerem 8. O tom nemá původní kód API nejmenší tušení, takže se jeho funkčnost musí řešit přes meta tag s X-UA-Compatible.
2.1.4
Otevřený projekt OpenStreetMap
OpenStreetMap je otevřený projekt, který se snaží vytvořit volně dostupná geografická data. Získává je integrací dat z různých zdrojů a především individuálním sběrem dat pomocí GPS zařízení. Mnoho institucí, organizací a dokonce i firem uvolnilo svá data pod licencí kompatibilní s OpenStreetMap, aby tomuto projektu pomohli. Kvalita mapových podkladů pro ČR však není zrovna nejlepší a pro účely aplikace, která to se svým záměrem myslí vážně, se moc nehodí ani forma jejich zobrazení. Mapy sice obsahují například polohu sloupů elektrického vedení nebo přesné hranice lesů, jenže vrstevnice nebo turistické značky a cyklostezky nepodporují. 7
OpenStreetMap je zajímavý počin a do budoucna možná perspektivní, ale jeho nasazení v aplikaci se nedá příliš doporučit. Je uveden pro úplnost jako zajímavý alternativní a otevřený zdroj geografických dat, jenž by v budoucnosti mohl nabýt na relevanci.
2.2
Informační zdroje
Turistika je v České republice velmi rozšířená. Turistické výlety patří mezi ty nejdůležitější aktivity ve volném čase v tuzemsku.
2.2.1
Turistické cíle
Mezi nejoblíbenější turistické cíle patří hrady, zámky, kostely, kaple, rozhledny, muzea, atd. Z tohoto důvodu jsem se rozhodl využít čerpání informací ze serveru Hrady.cz. Databáze památek je zde poměrně rozsáhlá. Poskytuje podrobné turistické i historické informace o daných památkách, které najdeme nejenom v Česku, ale i v jiných zahraničních zemích (např.: zámek Albrechtsburg v Německu). Dalším důležitým bodem pro výběr tohoto serveru bylo to, že se v poslední době začalo podílet na jeho vývoji čím dál více lidí, díky kterým se obsah serveru postupně rozrůstá.
2.2.2
Turistické trasy
Pro výběr turistických tras jsem použil server gpsbase.cz, což je vlastně projekt, který si klade za cíl shromáždit a zpřístupnit údaje o zeměpisných souřadnicích objektů významných především pro turistiku a nabídnout jejich propojení do tras. V databázi by se měly postupně objevovat všechny značené cesty Klubu českých turistů i se souřadnicemi všech rozcestníků a zajímavých míst na nich a v jejich okolí, stejně jako další neznačené trasy a místa, které mohou sloužit jako námět na výlet. A to jak na území České republiky, tak i v okolních zemích. Použitý souřadnicový systém je WGS-84, který jako jediný využívají všechny běžné GPS navigátory. Trasy zde nejsou koncipovány tak, aby člověk neznalý místního prostředí bez jakékoliv další informace bez problému našel cestu. Údaje z GPS Báze mají být doplňkem klasické orientace v terénu a vůbec zpestřit a oživit výlet. GPS Báze je otevřený projekt. To znamená, že kterýkoliv uživatel internetu může z databáze údaje nejen vyhledávat a číst, ale také je může do databáze přidávat nebo měnit. K zápisu do databáze je nutno se registrovat. Při registraci nejsou vyžadovány žádné osobní údaje. Registrace pouze znamená, že je uživateli přidělena identifikace, se kterou budou jím zadané údaje ukládány. Této
8
identifikace pak bude v budoucnu možno využít např. pro hodnocení spolehlivosti vybraných dat [14]. Historie Klubu českých turistů (známý také pod zkratkou KČT) sahá do roku 1888, kdy byl Klub založen skupinou vlastenců okolo Vojty Náprstka. Dnes má necelých 40 členů, z toho téměř čtvrtinu mládeže. KČT poskytuje všechny druhy turistiky - pěší, cyklo, lyžařskou a vodní turistiku, mototuristiku, vysokohorskou turistiku, turistiku zdravotně postižených a nejnověji i hippoturistiku. Organizuje řadu turistických akcí a stará se především o značení turistických tras a cest. Více na [15].
2.3
Značkovací jazyky
Značkovací jazyk (Markup Language) je jazyk, jehož zdrojový text obsahuje současně jak vlastní text, tak instrukce pro zpracování. Ty se zpravidla vyskytují v podobě příkazů (commands) či značek (tags). Zdrojovým textem bývá obyčejný ASCII soubor, což umožňuje jeho snadnou editaci i nejjednoduššími textovými editory, jako je například Poznámkový blok v MS Windows nebo vi v linuxu. Typickým rysem značkovacích jazyků jsou znaky se speciálním významem. Ty slouží k vymezení řídících konstrukcí - příkazů či značek. Například v XML, které je nepochybně nejvýznamnějším současným představitelem značkovacích jazyků, mají speciální význam znaky „menší než“ (<) a „větší než“ (>), jež zahajují a ukončují značky. Text mezi nimi je chápán jako instrukce, kterou využije zpracovávající software. Zdrojový text může vypadat například takto:
Nadpis
Dvojice značek - zahajující
a ukončující
- v něm označuje nadpis atd. Jelikož některým znakům byl přidělen speciální význam, musí značkovací jazyk obsahovat také konstrukce pro jejich vložení do textu. Tradičními představiteli značkovacích jazyků byly nástroje pro formátování textu - programy nroff, troff a další operačního systému Unix či typografický systém TeX. Za značkovací jazyk lze označit i PostScript. Hlavní výhodou značkovacích jazyků je to, že díky otevřenému textovému formátu nevyžadují speciální programové vybavení pro svou editaci. Specializované programy či alespoň adaptace některých výkonnějších editorů ale jejich editaci podstatně usnadní a zpříjemní. Dokumenty v těchto jazycích lze snadno strojově generovat. Nástroje pro jejich zpracování většinou bývají k dispozici zdarma a s otevřeným zdrojovým kódem. Na druhé straně jejich použití vyžaduje určité 9
základní znalosti,ale křivka učení bývá poměrně strmá. Na rozdíl od WYSIWYG nástrojů není možné si ke značkovacímu jazyku sednout a bez znalosti jeho příkazů či značek jen tak experimentovat. Informace z této kapitoly jsou volně převzaty z [6].
2.3.1
Rozdělení značkovacích jazyků
Mezi značkovacími jazyky lze vymezit dvě základní skupiny :
2.3.1.1
Jazyky popisné (deskriptivní)
Jejich konstrukce slouží k popisu, co jsou informace obsažené v dokumentu zač. Typickými představiteli jsou XML či HTML - jejich prostřednictvím lze například vymezit na stránce nadpis, odkud kam sahají jednotlivé odstavce či popsat odkaz na jinou stránku. Je ponecháno na zpracovávajícím programu, jak s těmito informacemi naloží a jak je promítne například do zobrazení dokumentu.
2.3.1.2
Jazyky výkonné (procedurální)
Obsahují i výkonné instrukce na úrovni programovacího jazyka - typicky určitou formu pamětí či proměnných a nástroje pro přiřazování a využívání jejich hodnot. Výkonné jazyky zpravidla také umožňují velmi detailně popsat vizuální charakteristiky výstupu. Uživatel může tedy velmi přesně řídit vzhled výsledného dokumentu. Mezi procedurální jazyky patří TeX či PostScript. K demonstraci vyjadřovací síly prvního z nich v něm byl dokonce vytvořen interpret jazyka BASIC, přestože se jedná o typografický program.
10
2.4
Wiki technologie
2.4.1
Co je to wiki?
Představte si, že surfujete na internetu a narazíte na stránku, kde smíte a rádi byste něco přidali nebo změnili (literární odkaz, překlep, …). Eventuálně můžete rozsáhlý článek zobrazit na zvláštní stránce. Pouze kliknete na editovací tlačítko, změníte všechno, co si přejete, připojíte několik nápadů, potvrdíte je a nová stránka je ihned aktualizována. Wiki technologie umožňují prakticky komukoliv kompletně upravovat stránky bez větších potíží. Tato otevřenost je netradičním a úžasným hlediskem wiki technologií. Wiki je internetový software, který povoluje všem návštěvníkům libovolně měnit obsah stránky editací v prohlížeči. Tohle dělá z wiki snadno použitelnou platformu pro spolutvorbu textů a nápovědy. Obecně rozlišujeme 2 aplikační možnosti s wiki: může být použita jako nástroj v uzavřené pracovní skupině nebo smí být nasměrována potenciálně každému přes internet. Wiki slouží jako vědomostní nástroj v plánování a dokumentaci [7].
2.4.2
Původ wiki
První wiki se jmenovala „WikiWikiWeb“. Vyvinul ji Ward Cunningham v roce 1995. Zvažoval propagaci nových metod ve vývoji, jako například objektově orientované programování. Protože byl nespokojený s tradičním zpracováním textu, pátral po nové aplikaci, která by to dokázala lépe. Jeho cílem byl poměrně jednoduchý software, který umožní kolektivní práci.
2.4.3
Technologie
Wiki software je instalován jako skript na serveru. Server produkuje malé dokumenty zvané wiki stránky nebo články zpřístupněné skrz internetový prohlížeč. Obsah wiki stránek je psán jako jednoduchý text a je uložen buď v souboru nebo v databázi. Když je wiki stránka zpřístupněná, prohlížeč nejdříve zašle dotaz na server, kde se data upravují pomocí wiki software. Tyto data, která jsou ve formě jednoduchého textu, musíme formátovat na displej prohlížeče. Princip fungování wikipedie je znázorněn na obrázku 2.4.
11
Obrázek 2.4: Wiki (převzat z [7])
Wiki skript překládá souborový text (wiki kód) nebo sestavuje data do HTML a nebo je vloží do webové stránky(šablony) posílané zpět prohlížeči. Např.: wiki skript může být PHP skript, který čte nezpracované data z MySQL databáze. Tyto nezpracované data jsou kontrolována řádek po řádku a speciální příkazy obsažené v nich jsou nahrazeny odpovídajícím HTML kódem.
2.4.4
Wiki klony (napodobeniny)
S vývojem a používáním „WikiWikiWeb“ se objevily nové výzvy. „MeatBall“ (samotná wiki společnost) tvrdí, že v současné době existuje kolem 200 odlišných typů wiki. Tyto aplikace jsou nazvány klony, jelikož napodobují originální wiki. V každé z nich je několik extra funkcí. Mezi nejběžnější typy patří : •
UseModWiki - jedna z nejstarších a nejrozšířenějších wiki klonů, psána v Perlu.
•
MediaWiki - koncipována pro potřeby Wikipedie, skládá se z několika skriptů psaných v PHP a obsahuje pár dalších vylepšení.
•
PmWiki - napsána v PHP.
•
MoinMoin - jednoduchý a velmi rozšířený wiki klon napsán v programovacím jazyku Python, nepotřebuje spojení s databází.
•
Wetpaint - speciální příklad bezplatné wiki, díky které smíme psát své vlastní wiki stránky s veřejnou doménou. Nicméně tento wiki software není volně dostupný.
12
3
Návrh řešení
Tato kapitola je zaměřená na návrh řešení pomocí vývojových prostředků .
3.1
Javascript
JavaScript je programovací jazyk, který se používá v internetových stránkách. Zapisuje se přímo do HTML kódu, což je velká výhoda, protože je to jednoduché. Informace o Javascriptu jsou převzaty z [10]. JavaScript je klientský skript (obrázek 3.1). To znamená, že se program odesílá se stránkou na klienta (do prohlížeče) a teprve tam je vykonáván. Protikladem klientských skriptů jsou skripty serverové, které jsou vykonávány na serveru a na klienta jdou už jen výsledky.
Obrázek 3.1: Náhled na Klientský skript (převzat z [10]).
Existují i jiné jazyky klientských skriptů, například VBScript. Jsou ale tak málo používané, že když se dnes mluví o "skriptech", myslí se tím JavaScripty.
3.1.1
Charakteristiky jazyka
Pomocí skriptovacího jazyka je možné přistupovat k různým prvkům stránky jako například obrázky, formuláře, odkazy a jiné. Tyto prvky můžeme pomocí skriptů různě měnit a ovlivňovat. JavaScript je jazyk interpretovaný - nemusí se kompilovat, objektový - využívá objektů prohlížeče a zabudovaných objektů, závislý na prohlížeči (funguje ale ve většině prohlížečů), case sensitivní - záleží na velikosti písmen v zápisu a syntaxí se podobá jazykům C a Java.
13
3.1.2
Omezení jazyka
JavaSript má taky několik logických omezení vyplývajících z toho, na co je určený. Proto nemůžeme pomocí JavaScriptu vykonávat žádné diskové operace (kromě cookies), protože by se asi nikomu nelíbilo, kdyby přešel na nějakou stránku a skript umístěný na ní by nám vytvořil na disku 10000 maličkých souborů s náhodně vygenerovanými názvy. JavaScript je možné spouštět jen za pomoci internetového prohlížeče, ne jako samostatný program. Uživatel taky může JavaSript zakázat.
3.2
Rozšíření MediaWiki
Rozšíření je kompilace kódu PHP, které přidává nové nebo vylepšené funkce hlavnímu jádru MediaWiki. Rozšíření je jednou z hlavních výhod MediaWiki. Umožňuje wiki správcům možnost přizpůsobit si ji podle jejich vlastních požadavků. V závislosti na našich cílech můžeme použít rozšíření na: •
wiki značky používané k psaní článků;
•
přidání nové informační a administrativní kapacity;
•
změna vzhledu a dojmu MediaWiki;
•
posílení bezpečnosti prostřednictvím uživatelského autentizačního mechanismu.
Rozšíření lze také rozdělit na programovací techniky používané k dosažení jejich účinku. Některá rozšíření se provádí jako podtřídy MediaWiki za předpokladu základní třídy. Podtřídy speciálních stránek jsou použity na výstavbu stránek, jejichž obsah je dynamicky generován pomocí kombinace současného stavu systému, vstupních parametrů uživatele a databázových dotazů. Vzhled a dojem MediaWiki se mění pomocí skinů.
3.3
Architektura systému
Komponenta „MediaWiki“ interně komunikuje s komponentou „plugin“. Obě komponenty mají svá rozhraní. Uživatel pošle požadavek komponentě „MediaWiki“ přes jeho rozhraní, kde požadavek budou tvořit hodnoty parametrů. Komponenta „MediaWiki“ zjistí, že na zpracování má extra komponentu „plugin“ a přepošle jí uživatelův požadavek, který zpracuje a přes komponentu „MediaWiki“ vrátí výsledek uživateli (viz obr. 3.2).
14
Obrázek 3.2: Architektura systému
3.4
Trasy
Zpracování značek spočívá ve zvoleném pluginu, ve kterém jsou implementovány funkce pro řešení uživatelova požadavku (obr. 3.3).
Obrázek 3.3: Rozhraní pluginu pro práci s trasami
15
3.5
Zájmové body
Na obrázku 3.4 jsou znázorněny další funkce, které jsou implementovány v pluginu pro zjištění turistických informací o dané památce a dopravního spojení k památce.
Obrázek 3.4: Rozhraní pluginu pro práci se zájmovými body
3.6
Značkování a značkovací jazyky
Značkování (markup) je proces, kdy obohacujeme určitý text (dokument) o nový význam prostřednictvím značek. Pokud značky mají obsahový význam, tedy přímo konkretizují obsah značky, pak se jedná o sémantické značkování. Důvody pro aplikaci značkování jsou: •
datová nezávislost, a tím i životnost označkovaného dokumentu;
•
přehlednost;
•
zjednodušení zpracování dokumentu.
Značkovací jazyk (markup language) je tedy formálně definovaný jazyk zavádějící množinu speciálních symbolů (značky, tagy). Značkovací jazyky určeny k vyznačování částí textu podle určitých pravidel, pomocí vyhrazené množiny symbolů. Umožňují definovat typ dokumentu, popsat strukturu, způsob naplnění struktury textovým obsahem a význam značkovaných částí. Vzájemně se liší možnostmi rozšiřitelnosti jazyka, rozsahem specifikace, obecností i aplikačním zaměřením [16]. Viz. kapitola 2.2. 16
3.6.1
Značky
Značkou (mark, tag) se rozumí posloupnost znaků, která se musí vyskytovat ve zpracovávaném textu pouze v roli značky definující jednotlivé prvky. Typ značky je závislý na značkovacím jazyku, mohou být triviální jednoznakové i složené z několika znaků. Návrh značek : •
[kct:trasa]číslo[/trasa] - číslo KČT trasy (zobrazí se informace o příslušné trase);
•
[kct:rozcesti:číslo]název rozcestí[/rozcesti] - se přeloží na název rozcestí i s odkazem na přesnou polohu na mapě + další informace;
•
[map:číslo] - zobrazí se mapa s rozcestími, které uživatel zadal na dané trase.
Zapojení těchto navrhnutých značek je znázorněno na ukázkovém příkladu 1 a výsledné zobrazení na obr. 3.5.
Příklad 1: Tento
text
popisuje
turistickou
trasu
[kct:trasa]0507[/trasa].
Trasa
začíná
na
rozcestí
[kct:rozcesti:0507]Náměšť nad Oslavou-nádraží[/rozcesti]. Po necelých 9 kilometrech se dostaneme na
rozcestí
[kct:rozcesti:0507]Pod
Pastýřkou[/rozcesti].
Další
zajímavou
zastávkou
je
[kct:rozcesti:0507]Ketkovický hrad - rozcestí[/rozcesti], kde můžeme navštívit zříceninu Levnov. Naše trasa končí na rozcestí [kct:rozcesti:0507]Panorama[/rozcesti]. [map:0507]
Obrázek 3.5: Příklad 1
17
•
[turcil]Karlštejn[/turcil] - se přeloží na text "Karlštejn", po kliknutí na něj se zobrazí mapa, kde se památka nachází, po přejetí myší se zobrazí část historických informací;
•
[info]Karlštejn[/info] - se přeloží na text "Karlštejn", po přejetí myší se zobrazí informace o dané památce (návštěvní hodiny, polohu, stav, kraj, stát);
•
[obec]Návojná[/obec] - se přeloží na text "Návojná", po kliknutí na něj se zobrazí kompletní informace o obci popřípadě města;
•
[spoj:Návojná:Brno:10.5.2010]vlak[/spoj] - se přeloží na text "vlak", po kliknutí na něj se zobrazí vhodné autobusové, vlakové spojeni v zadaný den.
Příklad 2:
[obec]Návojná[/obec] - [obec]Buchlovice[/obec] - [obec]Brno[/obec]
V pondělí ráno nasedneme v Návojné na [spoj:Návojná:Buchlovice:16.5.2010]vlak[/spoj] do města [obec]Buchlovice[/obec]. Po příjezdu do Buchlovic, ve kterých se mimo jiné nachází zámek [turcil]Buchlovice[/turcil], nasedneme na speciální autobus, který nás odveze přímo k hradu [info]Buchlov[/info]. Hrad [turcil]Buchlov[/turcil] je státním hradem. Následující den se dopravíme [spoj:Buchlovice:Brno:17.5.2010]autobusem[/spoj] do města [obec]Brno[/obec].
18
4
Implementace
4.1
Vývojové prostředí a technologie
Při tvorbě rozsáhlejších aplikací si je vhodné zvolit vývojové prostředí, ve kterém se bude aplikace tvořit. Pro tuto aplikaci jsem si zvolil vývojové prostředí NetBeans (NetBeans IDE) [8]. Je to nástroj, pomocí kterého programátoři mohou psát, překládat, ladit a šířit programy. NetBeans IDE je napsáno v jazyce Java a je postaveno na stejnojmenné platformě. Primárně je určeno pro vývoj aplikací v jazyce Java, ale může podporovat i další programové jazyky jako například PHP.
4.1.1
Jazyk PHP
PHP (rekurzivní zkratka PHP: Hypertext Preproccesor) je skriptovací programovací jazyk určený především pro programování dynamických internetových stránek. Jeho vznik sahá až k roku 1994. Nejčastěji se začleňuje přímo do struktury jazyka HTML, XHTML či WML, což lze využít při tvorbě webových aplikací. PHP skripty jsou většinou prováděny na straně serveru, k uživateli je přenášen až výsledek jejich činnosti. Výstupem skriptu nemusí být pouze HTML, ale třeba i XML v podobě RSS, obrázek či PDF. Syntaxe jazyka je inspirována několika programovacími jazyky (Perl, C, Pascal a Java). Je na něm postaveno mnoho známých projektů jako encyklopedie Wikipedia, redakční systém WordPress, fórum phpBB a další [9]. PHP se stalo velmi oblíbeným především díky jednoduchosti použití a tomu, že kombinuje vlastnosti vice programovacích jazyků a nechává tak vývojáři částečnou svobodu syntaxi. V kombinaci s operačním systémem Linux, databázovým systémem (obvykle MySQL nebo PostgreSQL) a webovým serverem Apache je často využíván k tworbě webových aplikací. Pro tuto kombinaci se vžila zkratka LAMP - tedy spojení Linux, Apache, MySQL a PHP nebo Perl.
4.1.2
MediaWiki
MediaWiki je název software (wiki systému), na kterém běží Wikipedie a další projekty nadace Wikimedia. MediaWiki se někdy proto označuje jako engine (motor) Wikipedie. Je to svobodný software šířený pod licencí GNU GPL. Je navržen pro běh na rozsáhlé serverové farmě provozující stránky s miliony návštěvníků denně. Je extrémně schopná škálovitá implementace wiki s mnoha funkcemi, která používá PHP pro zpracování a zobrazení dat uložených v databázi MySQL. Stránky jsou zapsány ve wikitextu, takže je mohou snadno editovat i uživatelé bez znalostí XHTML a CSS.
19
Když uživatel uloží svou editaci nějaké stránky, MediaWiki ji zapíše do databáze, ale přitom zachová předchozí verze této stránky, čímž umožňuje snadný návrat v případě vandalismu nebo spamování. MediaWiki také podporuje práci s obrázky a multimediálními soubory uloženými v souborovém systému. Velké wiki s mnoha uživateli mohou využít podporu cachování a snadné propojení s proxy servery Squid [12]. Původním autorem je Magnus Manske. Do doby vytvoření MediaWiki používala Wikipedie systém UseModWiki (toto období je označováno jako Phase I). 25.ledna Wikipedie přešla na nový systém, tento den je označován jako Magnus Manske Day. Po zásadním přepracování programu (tzv. Phase III) byl program přejmenován na MediaWiki, podle názvu nadace Wikimedia. Tato podobnost názvů je někdy kritizována jako matoucí [11].
4.1.2.1
Hlavní rysy MediaWiki
MediaWiki byla vytvořena pro potřeby webové encyklopedie a nyní je nabízena volně jako profesionální wiki systém. Při navrhování i dalším rozvoji je brán zřetel především na požadavek práce s velkým množstvím uživatelů prostřednictvím stránek bez omezení výkonu a funkčnosti. Nepřekonaná výkonnost stejně jako propracovaná struktura stránek je důvodem její velké oblíbenosti. Jedním z hlavních rysů MediaWiki je možnost docílit individuálního celkového dojmu prostřednictvím upravitelných skinů pro vlastní stránky uživatelů. Dále pak systém UseMode je základem pro budování struktury stránek a úpravy syntaxe. Jsou nabízeny jmenné prostory pro rozlišování obsahu s podporou podstránek v některých jmenných prostorech, dále odkazy na jednotlivé sekce článků. Uživatelský komfort zvyšuje možnost vytváření kategorií pro klasifikaci a hierarchické procházení článků. K větší efektivitě práce s informacemi přispívá služba sledování změn konkrétních článků (watchlists), zobrazení posledních článků, na kterých pracoval konkrétní uživatel, propracovaný systém nedávných změn (rychlé odkazy, rozdíly oproti předchozí verzi) a ty jsou v článcích graficky odlišeny. Přehlednosti napomáhají odkazy se zkratkami stejně jako odkazy na tzv. pahýly (stránky pod určitou velikost), jež jsou zobrazovány jinou barvou. K dispozici je volitelné zobrazení obsahu, jež lze využívat pro dlouhé články (tzv. table of contents). Multimediálního charakteru lze dosáhnout nahráváním souborů (např. obrázků a zvuků). Pro zapojování dalších uživatelů je důležitá propracovaná služba editování. Přehlednost práce i nezkušených uživatelů zvyšuje možnost editace pouze malých částí stránek pomocí tzv. section editing. K dispozici je panel nástrojů pro zjednodušení editace. Lze zobrazovat souhrny nedávných editací, systém řeší editační konflikty při paralelní editaci, a to automatickým sloučením změn. Editace mohou být označeny jako malé a takto vcházejí do historie změn. Samozřejmostí je antispamová kontrola a blacklisty. Bezpečnosti přispívá schopnost odlišit oprávnění pro anonymní uživatele, registrované uživatele, pro adminy a vývojáře. Využívají se předdefinovaná práva jednotlivých uživatelských skupin s využitím různých volitelných schémat oprávnění (např.
20
nastavení, že pouze registrovaní uživatelé mohou editovat). V neposlední řadě je nutno zmínit rozsáhlou jazykovou lokalizaci, včetně češtiny. Výhodou je možnost tvorby odkazů na wiki v jiných jazycích. Plná podpora UTF-8 [13].
4.2
Implementační problémy
V této kapitole je popsáno zapojení rozšíření (plugin) do MediaWiki, implementace značek, práce s lokální cache a práce s API.
4.2.1
Integrace do Mediawiki
Jak již dříve bylo zmíněno, v současné době existuje asi 200 odlišných typů Wikipedie, ale pouze několik z nich je napsáno v jazyce PHP. Svými možnostmi a podobností Wikipedie mě nejvíce zaujala MediaWiki, kterou jsem se ve svém projektu rozhodl použit a rozšířit ji o nové vlastní wiki značky, které mají za úkol poskytnout uživateli rozsáhlé turistické informace na základě jeho požadavků. Rozšíření probíhá tak, že se k hlavnímu jádru MediaWiki přidá plugin, ve kterém jsou implementovány všechny potřebné fukce pro realizaci výsledku.
4.2.2
Práce s kontextem značky
Základem je správné navrhnutí značek, se kterými může uživatel v MediaWiki pracovat. •
[kct:trasa]0507[/trasa]
Číslo mezi zahajující a ukončující značkou nám říká, o jakou KČT trasu se jedná. Je zapotřebí jej vyhledat v předem uložené databázi. Hledání probíhá pomocí speciálně sestaveného regulárního výrazu a v případě úspěchu je zobrazen kompletní název KČT trasy. Např.:
21
•
[kct:rozcesti:0507]Pod Vlčím kopcem[/rozcesti]
Práce se zadávanými rozcestímí je poněkud složitější, jelikož dochází k propojení více značek mezi sebou. Číslo KČT trasy obsažené v zahajující značce je zapotřebí připojovat ke každému rozcestí. Máme tak jistotu, že dané rozcestí skutečně patří do určité KČT trasy, na které se vyskytuje. Každé rozcestí je popsáno jeho vlastním popisem, nadmořskou výškou a gps souřadnicemi, pomocí kterých sestavuji výslednou mapu, aby uživatel mohl vidět jeho přesnou polohu (obr. 4.1).
Obrázek 4.1
V případě zadání chybného nebo neexistujícího hledaného rozcestí nedojde k zobrazí jeho mapy, ale pouze k jeho výpisu.
•
[map:0507]
Tato značka nám slouží k zobrazení mapy se zadávanými rozcestími na určité KČT trase. Je nutné si o ní uchovávat všechny informace. Prvním krokem je procházení polem s rozcestími, kde každé má
22
svůj název a speciální klíč, pomocí kterého pak snadno vyhledáme příslušné gps souřadnice. Z nich pak sestavuji pomocí Javasciptu výslednou mapu (obr. 4.2).
Obrázek 4.2 •
[turcil]Karlštejn[/turcil]
Název této značky jsem zvolil zkratkou z dvouslovného názvu “turistický cíl”. Slouží nám k zobrazení mapy, kde se daná památka nachází a k zobrazení části historických informací o ní. Nejdříve jsem se snažil celou databázi turistických cílů na serveru hrady.cz uložit do lokální cache, ale po několika testováních jsem zjistil, že to není optimální řešení, jelikož databáze byla příliš rozsáhlá a hledání v ní časově náročné. Proto jsem se rozhodl pro vyhledávání památky přímo na serveru hrady.cz a pro následné stažení stránky s památkou, ze které pomocí speciálně upraveného regulárního výrazu získávám historické informace a gps spouřadnice.
23
•
[info]Buchlov[/info]
Aby měl uživatel dostatečný přehled o turistickém cíli, ať už se jedná o jeho stav, dostupnost, lokalitu, bylo zapotřebí implementovat tuto značku. Princip řešení je založen na podobném způsobu práce jako se značkou [turcil] s tím rozdílem, že má jiný regulární výraz pro vyhledávání informací. Ty jsou pak na výstupu zobrazeny po přejetí myší po dané památce. •
[obec]Buchlovice[/obec]
Slouží k získání důležitých informací o obci popřípadě města (viz obr. 4.3). Pro její činnost využívám server mesta.obce.cz.
Obrázek 4.3
24
•
[spoj:Návojná:Buchlovice:16.5.2010]vlak[/spoj]
Základ této značky tvoří 3 důležité informace: začátek trasy, cíl trasy a den, ve který se má výlet podniknout. Pomocí nich jsem sestavil příslušný odkaz, který vyhledá autobusové, vlakové spojení v zadaný den (obr. 4.4).
Obrázek 4.4
4.2.3
Změna kódování stránek
Dokumenty mohou být uloženy v libovolných kódech v závislosti na jazyce. Databáze hrady.cz a gpsbase.cz jsou v kódování windows-1250, zatímco výsledná MediaWiki v UTF-8. Kvůli tomu musíme správně měnit kódování dat tak, aby se požadovaný výsledek zobrazil v řádném formátu.
4.2.4
Použití lokální cache
Aby nedocházelo k opětovnému vyhledávání turistických informací a jejich následné stahování ze serverů, rozhodl jsem se použít a imlementovat lokální cache. Nedochází tak k pomalému běhu webové aplikace. Při prvním uživatelovém požadavku se vytvoří dokument, ve kterém jsou uloženy všechny potřebné stránky, ze kterých čerpám informace. Při dalším požadavku kontroluji, jaké je stáří uloženého dokumentu (databáze) v lokální cache. Jestliže je starší než den, dojde k opětovnému vytvoření dokumentu, jinak se pracuje s aktuální databází uložené v lokální cache.
25
4.2.5
Integrace Mapy.cz
Google nabízí bezkonkurenční API, ale jeho mapové podklady jsou pro turistiku v českýh podmínkách naprosto nedostatečné. Výbornými mapovými podklady disponují Mapy.cz. Jejich jedinou nevýhodou může být jen omezení v oblasti licenčních podmínek. Pro svou práci jsem si nakonec vybral Mapy.cz, protože poskytují dobré turistické mapy a mají bohatou škálu funkcí. Potřebnou funkcionalitu pro zobrazení mapy získáme tak, že ke stránce připojíme odkaz na externí javascript, který bude obsahovat vygenerovaný klíč. <script type="text/javascript" src="http://api.mapy.cz/main?key=220748004&ver=3&encoding=utf8">
Po ověření platnosti klíče nám server vrátí javascriptový kód, který bude obsahovat veškerou potřebnou funkcionalitu pro zobrazení vlastní mapy. Mapu ve stránce vytvoříme zavoláním konstuktoru javascriptového objektu, kterému jako argument předáme HTML prvek, ve kterém chceme mapu zobrazit. Každé zadávané rozcestí turistické trasy má svůj unikátní klíč, díky kterému nedojde k možné záměně gps souřadnic s jiným dalším rozcestím a taky svoji vlastní značku, pod kterou je na mapě zobrazeno. Nastavení středu mapy je lokalizováno na první rozcestí kvůli přehlednosti začínající turistické KČT trasy. Dalším vylepšením mapy je zobrazování ukazatele metriky a severu, ovládání mapy pohybem myši, přiblížení, oddálení mapy.
4.2.5.1
Omezení API Mapy.cz
Hlavní nevýhodou Mapy.cz API je skutečnost, že za jeden den můžeme požádat pouze o 1000 zobrazení mapy. Mapa se nezobrazí v nepodporovaných prohlížečích nebo nemusí být plně funkční.
Seznam podporovaných prohlížečů : •
Internet Explorer od verze 6
•
Opera od verze 9
•
Konqueror od verze 3.5 – částečně
•
Safari od verze 2.04 – částečně
•
Mozilla Firefox
26
4.3
Testování
Jednou z důležitých částí vývoje programu je důkladné testování , které by se nemělo podcenit. Cílem testování je odhalit chyby a nedostatky implementovaného systému. Testování se provádí zadáváním špatných názvů a nebo špatných hodnot. Snažil jsem se zadávat co nejvíce možných názvů z databáze, abych zjistil, jestli program pracuje správně. Při testování jsem přišel na několik nedostatků např. špatné zobrazování znaků (bylo nastaveno jiné kódování, než pod kterým systém pracoval). Jinak testování proběhlo celkem úspěšně.
27
5
Možné rozšíření
Vývoj informačních systému jde v dnešní době neustále dopředu, z čehož nejprogresivnější vývoj zaznamenávají systémy navrhnuté jako webové aplikace. Tato webová aplikace byla implementována na základě analýzy a návrhu. Byly vyřešené všechny požadavky zadavatele projektu. V této kapitole jsou popsané možné vylepšení systému. Prvním možným vylepšením je získávání nových turistických informací z dalších serverů a jejich následné ukládání do databáze. Tím se z rychlý běh aplikace, jelikož předchozí zadané informace se už nemusí znovu vyhledávat v rozsáhlé databázi na serveru, ale jsou uloženy v lokální cache. Dalším možným vylepšením je přidání nových značek, které by například vyhledávaly ubytování v okolí našeho turistického cíle (horská chata, kemp, penzion, ubytovna, …), dále pak lépe propracovat komunikaci mezi PHP a JavaScriptem, sjednotit a vytvořit jednodušší rozhraní, které by později mohlo být i veřejně otevřeno, popřípadě zvolit uživateli vhodnější API lokálních map.
28
6
Závěr
Tato bakalářská práce popisuje tvorbu webové aplikace, která poskytuje uživateli turistické a mapové informace na základě navrhnutých značek. Systém pracuje na principu wikipedie, uživatel má možnost tvorby textu. Toto téma jsem si vybral, abych zdokonalil své vědomosti v tvorbě webových aplikací, a taky proto, že rád provádím různé turistické výlety za poznáním nových věcí a celkově cestování je mou zálibou. Chtěl jsem taky zjistit, jak podrobněji fungují různé turistické informační systémy a pochopit jejich problematiku. Webový informační systém turistického průvodce byla zajímavá úloha, ale v některých částech i poměrně časově náročná, jelikož jsem neměl dostatečné zkušenosti se vzpomínanými technologiemi. Zjistil jsem, na jakém principu funguje wiki systém a jaké problémy se vyskytují při jeho možném rozšíření. Pečlivě jsem si prostudoval knihu [7], ve které je kompletně popsán wiki systém, různé studijní opory pro pochopení některé řešené problematiky a taky rozšířil své znalosti v jazyku PHP, který mě mimo jiné velmi zaujal. I nadále bych se chtěl zlepšovat a zdokonalovat v tomto jazyce i v těchto technologiích. Webová aplikace byla implementována jako rozšíření MediaWiki za účelem poskytnutí turistických informací, které se skrývají pod každou navrhnutou značkou. Požadavky zadané uživatelem postupně přešly přes analýzu, návrh a implementaci systému a jeho následné testování. V těchto fázích se našlo několik nesrovnalostí, které ale byly vyřešeny a aplikace je připravená k použití. Jsem taky rád za svůj obrovský posun ve znalosti jazyka JavaScript, se kterým jsem měl jen malé zkušenosti. Další vývoj samostatné aplikace by mohl být přizpůsobený možným rozšířením, které jsou uvedené v předchozí kapitole. Projekt byl vytvořený bez větších předcházejících zkušeností a znalostí s návrhem a implementací webového systému za použití daných technologií.
29
Literatura [1] JAVOREK, Jan. API k českým turistickým mapám - Zdroják [online]. 22. 1. 2010 0:00 [cit. 201005-03]. API k českým turistickým mapám. Dostupné z WWW:
. [2] Mapping Success: Google Maps Case Studies [online]. c2010 [cit. 2010-05-03]. Mapping Success: Google Maps Case Studies. Dostupné z WWW:
. [3] The Google Maps API V3 - Google Maps JavaScript API V3 - Google Code [online]. c2010 [cit. 2010-05-03]. Google Maps JavaScript API V3. Dostupné z WWW:
. [4] Mapy Google v češtině a pro Čechy – realita, nebo zbožné přání? - LUPA [online]. 7. 5. 2008 [cit. 2010-05-03]. Mapy Google v češtině a pro Čechy – realita, nebo zbožné přání?. Dostupné z WWW:
. [5] Tři zobrazovací módy Internet Exploreru 8 - Zdroják [online]. 28. 1. 2009 [cit. 2010-05-03]. Tři zobrazovací módy Internet Exploreru 8. Dostupné z WWW:
. [6] Zna%C4%8Dkovac%C3%AD jazyk In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, 13.2.2010 [cit. 2010-05-03]. Dostupné z WWW:
. [7] EBERSBACH, Anja, et al. Wiki Web Collaboration : 2nd Edition. [s.l.] : [s.n.], c2008. 480 s. ISBN 978-3-540-35150-4. [8] NetBeans In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, , 1.4.2008 [cit. 2010-05-03]. Dostupné z WWW: . [9] PHP In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, , 12. 4. 2010 [cit. 2010-05-03]. Dostupné z WWW: . [10] Javascript - úvod [online]. 2. května 2010, 2. 5 2010 [cit. 2010-05-03]. Úvod do JavaScriptu. Dostupné z WWW: . [11] MediaWiki In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, , 30. 3. 2010 [cit. 2010-05-04]. Dostupné z WWW: . [12] How does MediaWiki work?/cs - MediaWiki [online]. 30.8.2007 [cit. 2010-05-04]. How does MediaWiki work?/cs. Dostupné z WWW: . 30
[13] MediaWiki.cz [online]. c2010 [cit. 2010-05-04]. MediaWiki.cz. Dostupné z WWW: . [14] GPS Báze [online]. 21.6.2006 [cit. 2010-05-05]. GPS Báze. Dostupné z WWW: . [15] KČT [online]. Copyright 2005-2009 [cit. 2010-05-05]. Klub Českých Turistů. Dostupné z WWW: . [16] O značkování, XML a XHTML [online]. c2009 [cit. 2010-05-05]. O značkování, XML a XHTML. Dostupné z WWW: .
31
Seznam příloh Příloha 1. CD
32