Webové rozhrani pro on-line GIS
|
|
- Anežka Králová
- před 8 lety
- Počet zobrazení:
Transkript
1 Mendelova univerzita v Brně Provozně ekonomická fakulta Webové rozhrani pro on-line GIS Bakalářská práce Vedoucí práce: Ing. Jiří Fejfar, Ph.D. Filip Balák Brno 2014
2
3 Na tomto místě bych chtěl poděkovat především vedoucímu bakalářské práce Ing. Jiřímu Fejfarovi, Ph.D. za odborné rady a poskytnuté konzultace.
4 Čestné prohlášení Prohlašuji, že jsem tuto práci: Webové rozhrani pro on-line GIS vypracoval samostatně a veškeré použité prameny a informace jsou uvedeny v seznamu použité literatury. Souhlasím, aby moje práce byla zveřejněna v souladu s 47b zákona č. 111/1998 Sb., o vysokých školách ve znění pozdějších předpisů, a v souladu s platnou Směrnicí o zveřejňování vysokoškolských závěrečných prací. Jsem si vědom, že se na moji práci vztahuje zákon č. 121/2000 Sb., autorský zákon, a že Mendelova univerzita v Brně má právo na uzavření licenční smlouvy a užití této práce jako školního díla podle 60 odst. 1 Autorského zákona. Dále se zavazuji, že před sepsáním licenční smlouvy o využití díla jinou osobou (subjektem) si vyžádám písemné stanovisko univerzity o tom, že předmětná licenční smlouva není v rozporu s oprávněnými zájmy univerzity, a zavazuji se uhradit případný příspěvek na úhradu nákladů spojených se vznikem díla, a to až do jejich skutečné výše. V Brně dne 21. května
5 5 Abstract BALÁK, Filip. Web interface for on-line GIS. Brno, Bachelor thesis. Mendelova univerzita v Brně. This work concerns creating a web interface for displaying maps with standards: WMS, WFS, and WPS. The basic standards for working with maps are discussed in first part. In next part are introduced technologies for building Web applications, and on the basis of those technologies is designed and implemented a web application. This application is subsequently tested and evaluated for use in the business. Abstrakt BALÁK, Filip. Webové rozhraní pro on-line GIS. Brno, Bakalářská práce. Mendelova univerzita v Brně. Tato práce se zabývá vytvořením webového rozhraní pro zobrazení map s podporou standardů: WMS, WFS a WPS. Nejprve rozebírá základní standardy pro práci s mapami, dále jsou představený technologie pro tvorbu webových aplikací a na jejich základě navrhnuta a implementována webová aplikace. Tato aplikace je následně otestována a zhodnocena pro použití v podniku.
6 OBSAH 6 Obsah 1 Úvod a cíl práce Úvod Cíl práce Standardy a komunikace v oblasti GIS OGC Web Map Service Web Feature Service Web Processing Service ArcGIS for Server služby Technologie pro tvorbu GIS aplikací v prostředí internetu Databáze SQL PostgreSQL PostGIS Python Django GeoDjango Javascript AJAX jquery Dojo Toolkit PHP Nette Framework Mapito Nástroje pro práci s mapou ArcGIS API for JavaScript OpenLayers Mapnik Google Maps API Nástroje pro distribuci mapových vrstev MapServer Geoserver GeoNode Kritéria porovnání Výběr nejvhodnější varianty Návrh webové aplikace pracující s mapovými standarty Návrh řešení Způsob užití aplikace
7 OBSAH 7 5 Implementace řešení Serverová část Nastavení serveru a databáze Nastavení Nette Datová vrstva users projects files layers services Tabulky s geometrií pro mapové služby Aplikační vrstva Zabezpečení Registrace uživatelů Správa mapových projektů Zakládání mapových projektů Generování MapFile Prezentační vrstva (Pohled) Mapová aplikace Mapové panely Panel Mapové vrstvy Panel pro práci s WPS Implementace ukládání mapových projektů Strom vrstev Testování Publikování WMS a WPS Založení nového mapového projektu Vložení vrstvy do projektu a její zobrazení Měření pomocí WPS Zhodnocení nasazení aplikace v podniku Uplatnění aplikace Cena realizace Závěr 40 8 Reference 41 Přílohy 46 A DVD 47
8 SEZNAM OBRÁZKŮ 8 Seznam obrázků Obrázek 1: Databázové schéma použité v aplikaci. 23 Obrázek 2: Use Case diagram implementované aplikace. 24 Obrázek 3: Seznam vytvořených mapových služeb. 35 Obrázek 4: Ukázka z výpisu GetCapabilities u publikované WMS. 36 Obrázek 5: Ukázka z výpisu GetCapabilities u publikované WFS. 36 Obrázek 6: Vytvořená mapová aplikace. 37 Obrázek 7: Ukázka z měření. 37
9 1 ÚVOD A CÍL PRÁCE 9 1 Úvod a cíl práce 1.1 Úvod V současné době je možné řešit mnoho problémů pomocí informačních technologií (IT). V mnoha podnicích jsou dnes klíčovým nástrojem pro práci počítačové systémy, které zajišťují uchovávání a manipulaci s informacemi. Tyto informační systémy jsou pak často dostupné přes internet. Díky tomu mohou uživatelé snadno využívat výhod informačních systémů, jak v práci, tak z pohodlí vlastního domova. Je jim umožněno zakládat si uživatelské účty a komunikovat se serverem, ze kterého mohou získávat informace. Speciálním druhem informačních systémů jsou potom systémy pracující s geoprostorovými daty geografické informační systémy (GIS) (GIS, 2014). Geografické informační systémy jsou dnes oblíbeným nástrojem, který je hojně využíván jak v podnikové tak nepodnikové sféře. S rozvojem v oblasti informačních technologií a internetu jsou stále dostupnější a využitelnější v praxi. Díky tomu bylo vytvořeno velké množství nástrojů, které implementují danou problematiku a umožnují vytvářet uživatelsky přívětivá rozhraní. Vznikají uživatelská rozhraní, která mohou být tvořena jednou vrstvou aplikace, ale obecně jsou využívány vícevrstvé architektury. Jako vícevrstvé se označují proto, že funkčnost aplikace je rozdělena mezi několik vzájemně spolupracujících vrstev, které spolu komunikují přes definované rozhraní. Nejběžnějším příkladem vícevrstvé architektury je architektura třívrstvá. V takovém případě rozlišujeme vrstvu, která se stará o uživatelské rozhraní, vlastní logiku aplikace a databázi se serverem (CleverAndSmart, 2008). V případě webových GIS aplikací jsou vícevrstvé architektury takřka pravidlem, protože všechny mapové vrstvy využívající standardy WMS nebo WFS jsou uloženy v nějaké databázi. Tvorba takové aplikace od začátku by byla časově velmi náročná, proto se většinou využívá různých pomocných nástrojů, případně i hotových řešení. 1.2 Cíl práce Hlavním cílem této bakalářské práce je tvorba grafického uživatelského rozhraní pro zobrazení a sdílení mapových vrstev ve formátech WMS a WFS a zpracovaní mapových dat přes WPS. Aplikace by měla běžet ve webovém prohlížeči. Budou popsány a zhodnoceny jednotlivé technologie, které je možné využít pro implementaci. Na hotové aplikaci se potom otestuje navrhnuté zadání.
10 2 STANDARDY A KOMUNIKACE V OBLASTI GIS 10 2 Standardy a komunikace v oblasti GIS 2.1 OGC Open Geospatial Consortium (OGC) je mezinárodní průmyslové konsorcium skládající se ze 481 firem, vládních agentur a vysokých škol, které se snaží vytvářet a poskytovat veřejně dostupné normy. OGC Standardy podporují interoperabilní řešení, která umožňují pracovat s geoprostorovými informacemi v prostředí internetu (OGC, 2013). Tyto standardy podporují vývojáře k tvorbě komplexních geoprostorových dat a služeb, které budou dostupné z velkého množství aplikací. OGC a OpenGIS jsou zaregistrované ochranné známky Open Geospatial Consortium (OGC). OGC je značka spojená s normami a dokumenty předloženými OGC. Mezi nejdůležitější OGC standardy patří WMS (Web Map Service) a WFS (Web Feature Service). V této práci však bude využit i standard WPS (Web Processing Service). Všechny tyto standardy budou podrobněji popsány v dalších kapitolách Web Map Service OpenGIS Web Map Service Interface Standard (WMS) poskytuje jednoduché http rozhraní, pracující na principu klient-server, pro zasílání georeferencovaných mapových obrázků z jedné nebo více geoprostorových databází, které tato data poskytují. Georeferencováním v tomto případě můžeme chápat jako jednoznačně daný referenční souřadnicový systém a souřadnicový obdélník (box), který obsahuje požadovaný obrázek, v tomto systému. Nejčastěji se pro označení souřadnicového referenčního systému využívá dataset EPSG. WMS je standard vyvinutý a dále rozšiřovaný Open Geospatial Consortium (OGC). WMS požadavek (WMS request) definuje geografickou vrstvu a oblast zájmu určenou ke zpracování. Odpovědí na požadavek (WMS response) je jeden nebo více georeferencovaných obrázků, které mohou být zobrazeny ve webové aplikaci (Web Map Service, 2013). Rozhraní také umožňuje specifikovat, jestli vrácený obrázek bude průhledný a bude tak možné kombinovat vrstvy z několika serverů. Pomocí této služby můžeme získávat rastrová data v několika formátech (např. PNG, GIF nebo JPEG). Jako zdroj dat pro WMS může sloužit soubor s geoprostorovými daty nebo geoprostorová databáze. Operace (OpenGIS Web Map Server Implementation Specification, 2006): GetCapabilities Vrátí metadata služby. GetMap Vrátí mapu zadaného formátu. GetFeatureInfo Poskytne informace o vlastnostech map, které byly požadovány před voláním této operace. Lze použít jen u vrstev, které mají staven parametr queryable= 1.
11 2.1 OGC Web Feature Service The Open Geospatial Consortium Web Feature Service Interface Standard (WFS) poskytuje rozhraní umožňující dotazovat se na geografické vlastnosti (features) umístěné na webu. Geografické vlastnosti jsou psané v GML formátu, což je značkovací jazyk založený na XML, který se používá pro zachycení prostorových informací. GML je také součástí OGC standardu (Web Feature Service Implementation Specification, 2005). V uložišti WFS služby se nachází georeferencovaná vektorová data (SHP, geoprostorové databáze). Pomocí této služby můžeme nejenom získávat data, ale zároveň je i měnit (je-li to povoleno). Ke komunikaci mezi serverem a klientem se využívá zasílání metod GET a POST přes Hyper Text Transfer Protocol (HTTP). Operace: GetCapabilities WFS musí být schopna vrátit své vlastnosti. Musí vrátit typy vlastností, které služba obsahuje a jaké operace s nimi lze provádět. DescribeFeatureType Popíše strukturu všech typů vlastností, které služba poskytuje. GetFeature Vrátí instanci konkrétní vlastnosti. GetGmlObject Vrátí instanci vlastnosti ve formátu GML. Transaction Obsahuje operace, které modifikují vlastnosti. Jsou to create, update a delete. LockFeature Uzamkne jednu nebo více instancí daného typu vlastnosti po dobu trvání transakce Web Processing Service OpenGIS Web Processing Service Interface Standard (WPS) určuje pravidla pro standardizaci vstupů a výstupů, které využívají služby zpracovávající geoprostorová data. Může zpracovávat rastrová i vektorová data a zvládá nad daty i složité analýzy. Komunikace se službou probíhá přes HTTP pomocí zasílání XML dokumentů přes metody POST a GET. Standard také definuje způsob, kterým si klient může nastavit běh procesu a jak budou výstupy z procesu ošetřeny. Údaje požadované WPS mohou být nahrány ze sítě nebo ze serveru, kde WPS běží. (Web Processing Service, 2013). Operace: GetCapabilities Vrátí metadata, která popisují implementaci. DescribeProcess Operace vrátí detailní popis služby obsahující popis vstupů, výstupů a formátů, které využívají.
12 2.2 ArcGIS for Server služby 12 Execute Spustí proces definovaný ve službě, který převede zadané vstupy na výstupy. 2.2 ArcGIS for Server služby ArcGIS for Server (AGS) je komplexní nástroj umožňující pořizování, správu, analýzu a vizualizaci prostorových dat v prostředí internetu. ArcGIS for Server je obvykle nasazován v rámci organizační architektury orientované na služby (SOA) nebo v prostředí cloud computingu (ESRI, 2010). Jednou z hlavních funkcí AGS je poskytování mapových služeb. AGS dokáže poskytovat jak rastrová, tak vektorová data. Data dokáže ukládat do paměti a vektorovým vrstvám přidat tabulky hodnot (ESRI, 2013). Tyto služby používají normy firmy ESRI, které se liší od těch, co používá OGC, ale i tak je kromě ESRI produktů mohou využívat a zobrazovat další GIS aplikace a nástroje (např. OpenLayers).
13 3 TECHNOLOGIE PRO TVORBU GIS APLIKACÍ V PROSTŘEDÍ INTERNETU 13 3 Technologie pro tvorbu GIS aplikací v prostředí internetu Tato část je zaměřena na představení úplného seznamu programového vybavení, které jsem v této práci zvažoval využít. Jsou zde také popsány programovací jazyky, mezi kterými jsem se rozhodoval. 3.1 Databáze Pod pojmem databáze si lze představit soubor dat, který slouží pro popis reálného světa. Entita je pak prvek reálného světa, který je popsán svými charakteristikami (vlastnostmi). Ty se většinou považují za atributy. Dalším důležitým pojmem je relační databáze. Relaci si lze představit jako tabulku, která se skládá ze sloupců a řádků. Sloupce odpovídají jednotlivým vlastnostem (atributům) entity. Údaje v jednom řádku tabulky reprezentuje konkrétní záznam. Tabulka je základním stavebním kamenem pro budování celé databáze. Relace tedy odpovídá celé tabulce a prvku relace odpovídá jeden konkrétní řádek. Jeden řádek bývá často nazýván databázovým záznamem. Soubor tabulek (relací) pak tvoří celou databázi (relační schéma) (Skřivan, 2000). Databáze se tedy používají pro přímý přístup k datům, která se pomocí tzv. SQL dotazů dají snadno extrahovat podle zadaných kritérií SQL SQL je standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích. SQL je zkratka anglických slov Structured Query Language (strukturovaný dotazovací jazyk). Jazyk v sobě zahrnuje nástroje pro tvorbu databází (tabulek) a dále nástroje na manipulaci s daty (vkládání dat, aktualizace, mazání a vyhledávání informací). SQL patří mezi tzv. deklarativní programovací jazyky, což v praxi znamená, že kód jazyka SQL se nepíše v žádném samostatném programu, ale vkládá se do jiného programovacího jazyka, který je již procedurální (Koch, 2006). Jazyk SQL se skládá z několika částí. Některé části jsou určeny pro administrátory a návrháře databázových systémů, jiné pak pro koncové uživatele a programátory. Jednou z těchto částí je jazyk DML - Data Manipulation Language, který obsahuje základní příkazy INSERT, UPDATE, DELETE a nejpoužívanější příkaz SELECT (Skřivan, 2000). S jazykem DML pracují nejvíce koncoví uživatelé a programátoři databázových aplikací PostgreSQL PostgreSQL je plnohodnotným relačním databázovým systémem s otevřeným zdrojovým kódem. Má za sebou více než patnáct let aktivního vývoje a má vynikající
14 3.2 Python 14 pověst pro svou spolehlivost a bezpečnost. Běží na všech rozšířených operačních systémech včetně Linuxu, UNIX (AIX, BSD, HP-UX, SGI-IRIX, Mac OS X, Solaris, Tru64) a Windows (PostgreSQL, 2012) PostGIS PostGIS je rozšíření pro PostgreSQL databázi přidávající podporu pro prostorové informace, nad kterými tak mohou být prováděny SQL dotazy. PostGIS implementuje specifikaci Simple Features for SQL konsorcia Open Geospatial Consortium (Postgis, 2013). 3.2 Python Python je dynamický jazyk, který podporuje procedurální i objektově orientované programování. Nabízí významnou podporu k integraci s ostatními jazyky a nástroji a přichází s mnoha standardními knihovnami (Lutz, 2010). Je vyvíjen jako open source projekt, který zdarma nabízí instalační balíky pro většinu běžných platforem a ve většině distribucí systému Linux je Python součástí základní instalace Django Django je vysoko-úrovňový open-source webový framework, který podporuje rychlý vývoj a čistý, pragmatický design. Drží se architektury Model-viewer-controller. Umožňuje dynamické generování administrací projektů (Django documentation, 2012). Jádro se skládá z objektově-relačního mapperu, který je prostředníkem mezi datovými modely (definované jako třídy Pythonu), relační databází ( Model ) a systémem pro zpracování žádostí s webovým systémem šablon ( View ) Zároveň obsahuje na regulárních výrazech založené zpracovávání URL (program Controller ). Součástí distribuce je také jednoduchý webový server používaný pro vývoj, podpora pro práci s JSON a XML, rozšiřitelná autentizace a další součásti. Framework zároveň řeší bezpečnost. Jsou zde aplikovány nástroje pro zmírnění útoků, jako jsou skriptování napříč sítěmi, SQL injection a hádání hesel (Security in Django, 2013) GeoDjango GeoDjango je součástí instalace Django frameworku. Hlavním účelem této sady nástrojů je usnadnění tvorby webových aplikací, které pracují s geoprostorovými daty. Součástí GeoDjanga jsou dnes již nezbytné open source nástroje pro konverzi, manipulaci a ukládání geoprostorových informací: GDAL, GEOS, and PostGIS (Springmeyer, 2009). Django Model API, které umožňuje definovat relační databázové schéma, jako jednoduché třídy Pythonu, jsou rozšířeny o podporu GeoDjanga. Podporují všechny
15 3.3 Javascript 15 datové typy popsané OpenGIS Simple Features Specification a přidávají vlastní metody, které zpracovávají prostorová data automaticky, když je záznam vytvořen nebo aktualizován. Tyto metody umožňují snadný import dat do databáze z libovolného podporovaného OGR vektorovém formátu, stejně jako automatické generování Django modelů prostřednictvím introspekce všech datových vrstev, typů polí a funkcí. Šablonovací systém Djanga, použitý k vybudování obsahu HTML je rozšířen o vestavěné generování šablon KML a jazyka JavaScript, které umožňuje snadno vložit dynamickou Google mapu nebo OpenLayers mapu v rámci webové stránky (The syndication feed framework, 2013). Automatické rozhraní pro administraci v Djangu, které vytváří okamžitý a bezpečný webový panel pro vytváření a editaci dat je obohaceno o přizpůsobitelné rozhraní OpenLayers pro editaci vektorových map. Toto rozhraní podporuje úpravy pro každý typ prostorových dat s funkcí automatické reprojekce, validací geometrie a podkladové vrstvy OpenStreetMap. Django Fixtures systém pracuje s prostorovými daty umožňujícími serializaci, zálohování a synchronizaci všech databázových tabulek mezi servery a weby pomocí XML, JSON nebo YAML formátů (Springmeyer, 2009). Další výhodou je přidání syndication feed modulu, který usnadňuje publikování dat ve formátech RSS a Atom. 3.3 Javascript JavaScript je objektový skriptovací jazyk vyvinutý firmou Netscape, který se používá v internetových stránkách. Může pracovat jak procedurálně, tak objektově (About JavaScript, 2013). Je závislý na prohlížeči (uživatel si ho může vypnout). V různých verzích prohlížečů nemusí skript vždy korektně fungovat. Tento problém částečně řeší frameworky postavené na JavaScriptu AJAX AJAX (zkratka pro Asynchronous Javascript and XML) je skupina technologií využívaných na straně klienta pro tvorbu asynchronních webových aplikací. Pomocí AJAXu je možné z webové stránky zasílat a získávat data bez nutnosti znovu načíst stránku. Komunikace mezi serverem a klientem probíhá pomocí metod GET a POST přes HTTP. Podporovány jsou různé typy řetězců. Přestože je podle názvu možné posílat data ve formátu XML, tak je doporučováno spíše používat JSON (AJAX wikipedia, 2014) jquery JavaScript má záměrně jednoduché základní API. Jeho API na straně klienta je však složité a mezi jednotlivými prohlížeči jsou napsané skripty často nekompati-
16 3.3 Javascript 16 bilní. Aplikace se v různých prohlížečích díky tomu chovají rozdílně. Příchod IE9 odstraňuje nejhorší z těchto problémů, ale mnoha programátorům přijde snazší napsat webovou aplikaci pomocí JavaScriptového frameworku nebo knihovny, která zjednodušuje běžné operace a odstraňuje rozdíly mezi prohlížeči. Jedním z nejoblíbenějších frameworků s touto funkcionalitou je jquery. jquery usnadňuje hledání prvků v dokumentu. U nich pak umožnuje přidání obsahu, editovaní HTML atributů a CSS vlastností, definování obslužných rutin událostí (event. handlers) a provádět animace. Má také Ajaxové nástroje pro vytváření dynamických HTTP požadavků a obecně jakýchkoliv užitečných funkcí pro práci s objekty a pole (Flanagan, 2011). Jak už název napovídá, jquery je knihovna zaměřená na dotazy. Typický dotaz používá CSS selektor k identifikaci množiny prvků dokumentu a vrátí objekt, který takové prvky představuje. Tento objekt pak poskytuje užitečné metody pro práci s odpovídajícími prvky jako se skupinou. Kdykoli je to možné, tyto metody vrátí objekt, na kterém jsou vykonané, což umožňuje stručný způsob řetězení idiomů, které mají být použity. Knihovna JQuery definuje jednu globální funkci s názvem jquery(). Jedná se o nejdůležitější funkci. Používá se tak často, že knihovna definuje globální symbol $ jako jejího zástupce (Flanagan, 2011). Přes tuto funkci probíhají všechny operace související s jquery v klientské části Dojo Toolkit Dojo Toolkit je open-source modulární JavaScriptová knihovna navržena tak, aby urychlila vývoj webových aplikací a snížila problémy způsobené se zobrazováním JavaScriptu v různých prohlížečích. Za tímto účelem byl vytvořen framework pro definování modulů a řízení jejich vzájemných závislostí Tento framework poskytuje nástroje pro optimalizaci JavaScriptu a CSS, generování dokumentace a testování jednotlivých částí, zlepšuje internalizaci a dostupnost. Zároveň také poskytuje bohatou sadu pomocných tříd pro běžnou potřebu a pomůcky (widgets) komunikující s uživatelským rozhraním. Pomůcky jsou komponenty, které obsahují JavaScriptový kód, HTML značky a definice CSS stylů. Obvykle mají podobu viditelnou na obrazovce a obsahují logické návaznosti na HTML, CSS, JavaScript a statické zdroje. Jsou reprezentovány jedním subjektem, se kterým se může manipulovat, udržovat ho a přenášet jako jakýkoliv soubor. (Russel, 2008) Dojo se skládá z několika částí: Base Vysoce kompaktní a optimalizovaná knihovna, která je základem pro všechno ostatní v Doju. Mimo jiné poskytuje pohodlný jazyk podporující dědičnost, AJAXové nástroje a balíčkovací systém, který vám umožní dostat se ke zdrojům za chodu místo toho, aby je získával při načtení stránky (Russel, 2008).
17 3.4 PHP 17 Core Tato knihovna je postavena na Base a obsahuje další nástroje pro práci s pomůcky, pokročilé animace a efekty, drag-and-drop zařízení, internacionalizaci (i18n), správu cookies, a další (Russel, 2008). Dijit Název Dijit vznikl jako zkratka z Dojo widget. Tato knihovna obsahuje již hotové pomůcky, které je možné konfigurovat nebo přímo použít. Velkou výhodou Doja je podpora AMD (Asynchronous Module Definition), která je součástí frameworku od verze 1.7. Jak už název napovídá, jedná se o nahrávání modulů asynchronně, což vede k výraznému zrychlení aplikací. 3.4 PHP PHP (rekurzivní zkratka PHP: Hypertext Preprocessor) je široce využívaný open source skriptovací jazyk, který je obzvláště vhodný pro vývoj webových aplikací a lze jej vložit do HTML. Kód je spouštěn na serveru, kde generuje HTML stránky, které jsou odeslány klientovi (PHP, 2013). Klient obdrží výsledky takového skriptu, ale nebude vědět, jak vypadal zdrojový kód. Jednou z největších výhod PHP je práce s databázemi. Princip práce s databází v PHP skriptech je velice jednoduchý. Skládá se z několika kroků (Kosek, 2001): Připojení k databázi vybere se, ke kterému serveru se chceme připojit. Dále se určí jméno a heslo, pro databázi. Zaslání SQL příkazu serveru se zašle libovolný SQL příkaz. Zpracování výsledku server vrátí výsledek předchozího SQL příkazu. Pokud byl zaslán příkaz SELECT, tak se postupně vrátí jednotlivé řádky výsledku, nad kterými je možné provádět další operace například je vytisknout jako součást webové stránky Nette Framework Tento Framework je velmi účinný nástroj pro tvorbu složitějších webových aplikací postavených na PHP. Využívá Model-View-Controller (MVC) architekturu, která vznikla z potřeby oddělit u aplikací s grafickým rozhraním kód obsluhy (controller) od kódu aplikační logiky (model) a od kódu zobrazujícího data (view). Tím aplikaci zpřehledňuje, usnadňuje budoucí vývoj a umožňuje testování jednotlivých části zvlášť. (MVC aplikace presentery, 2013) Nette už obsahuje uživatelský systém, ladící nástroje a nástroje pro zabezpečení. Řeší také komunikaci s databázemi a umožňuje snadný přechod z jednoho databázového systému do druhého.
18 3.5 Nástroje pro práci s mapou Mapito Projekt Mapito je funkční rozhraní pro geografické informační systémy napsané v PHP. Je vyvíjen Masarykovou univerzitou v Brně a jeho původním autorem Mgr. Jakubem Dubrovským. Hlavním cílem Mapita je usnadnění práce s geoprostorovými daty a jejich správy v prostorové databázi PostGIS. Mapito je pořád ve vývoji, ale již nyní umožňuje efektivní práci s vektorovými i rastrovými daty v PostGIS databázi (Dubrovský, 2012). Do budoucna se plánuje i podpora pro práci s WPS. 3.5 Nástroje pro práci s mapou ArcGIS API for JavaScript Firma ESRI poskytuje vývojářům zdarma pro nekomerční, nebo výukové využití sadu nástrojů pro vývoj mapových aplikací v prostředí internetu. Tyto nástroje jsou vysoce výkonnou alternativou k jiným open source nástrojům. ArcGIS API podporuje většinu základních formátů postavených na OGC, kromě Web Processing Service (WPS). Tuto službu nahrazuje svou vlastní geoprocessingovou službou. Je zde zároveň rozšířená podpora pro AGS, pro kterou je zde napsáno několik speciálních metod (Dojo and AMD, 2013). Velkou výhodou ArcGIS API je možnost svázat aplikace s projektem vytvořeným na Na této stránce si zaregistrovaný uživatel může v Cloudu zdarma vytvořit GIS projekt, který má v základní verzi některá omezení (např. vektorové vrstvy jsou omezeny na 50 objektů). Při zakoupení placené verze účtu může uživatel publikovat vrstvy jako AGS služby a používat své projekty pro komerční využití (Public Account, 2013). Celé API pro JavaScript je postaveno na JavaScriptovém frameworku Dojo Toolkit. Díky tomu je vývoj aplikací efektivní a oproti jiným nástrojům pro tvorbu mapových aplikací už v základu ruší rozdílné zobrazování v různých prohlížečích. API si z Doja bere syntaxi a celý systém pomůcek (Dojo and AMD, 2013) OpenLayers OpenLayer je open source knihovna napsaná v JavaScriptu, která umožňuje tvorbu mapových aplikací. Tyto nástroje řeší klientskou část aplikace (OpenLayers, 2013), takže k jejich užití není třeba žádné nastavování serveru a samotnou knihovnu není třeba stahovat, ale dá se k ní jednoduše připojit přes adresu: Mezi největší výhody tohoto API patří, že podporuje většinu OGS formátů jako jsou WMS a WFS. OpenLayers patří také mezi jedny z mála webových API, které podporuje formát WPS, pro který má několik užitečných funkcí (např. parsování metody GetCapabilities do formuláře). Dále podporuje formáty z jiných internetových stránek jako je Google, ArcGIS nebo OpenStreetMaps (Hazzard, 2011).
19 3.6 Nástroje pro distribuci mapových vrstev Mapnik Mapnik je volně šiřitelná sada nástrojů napsaná v C++ s Pythonovými vazbami, které usnadňují a urychlují vývoj. Jeho hlavním cílem je poskytnout nástroje pro tvorbu co nejlépe vypadajícího mapového výstupu. Mapnik může být použit jak pro vývoj webových tak i desktopových aplikací. Velkou výhodou Mapniku je jeho výkon, kdy ke svému běhu používá již odladěné knihovny pro správu paměti, parsování regulární výrazy, přístup k filesystému a k další. Mapnik přímo podporuje Windows, Mac a Linux. (Pavlenko, 2011) Menší nevýhodou je, že nepodporuje geoprocessing a nabízí menší počet podporovaných formátů než třeba OpenLayers. Obsahuje však hardwarovou akceleraci, takže má mnohem rychlejší vykreslování Google Maps API Firma Google poskytuje vývojářům nástroje k tvorbě mapových aplikací pro několik platforem. Jsou zde dostupné nástroje jak pro ios a Android, tak pro psaní webových aplikací s použitím JavaScriptu (Google, 2013). Dostupné jsou mapy města, plánovače cesty pro cestování pěšky, autem, na kole, nebo s veřejnou dopravou. Dále je zde dostupný lokátor veřejných podniků v mnoha zemích po celém světě (Google Maps, 2013). K tvorbě map pomocí Google Maps je třeba obstarat si API key. Ten lze zdarma získat na stránce: Díky němu se dá mapový projekt spravovat i mimo mapovou aplikaci a zároveň kontrolovat chod takové aplikace. Použití Google Maps API je umožněno i pro komerční použití, ale mají omezení. Takové stránky musí být veřejně dostupné a počet přístupů k Google Maps za den po dobu 90 dní v kuse musí být menší než (Google Maps, 2013). 3.6 Nástroje pro distribuci mapových vrstev Tato část popisuje možnosti publikování mapových vrstev podle standardů OGC. Zároveň je zde představeno kompletní řešení informačního systému pro publikování geodat - GeoNode MapServer MapServer je open source vývojové prostředí pro tvorbu prostorově orientovaných internetových aplikací. Ve své nejzákladnější podobě je MapServer CGI program, který běží na webovém serveru (MapServer, 2013). Pokud je MapServeru zaslaná žádost, tak se z informací předaných v URL požadavku vytvoří obraz požadované mapy. Žádost může také vrátit obrázky pro legendu, měřítka, referenční mapy a hodnoty uložené jako CGI proměnné (MapServer, 2013).
20 3.7 Kritéria porovnání 20 Jádrem MapServeru je takzvaný Mapfile (Mitchell, 2005). Jedná se o konfigurační soubor, který vymezuje vztahy mezi objekty a specifikuje, kde jsou uložena data pro mapovou aplikaci a jak se budou vykreslovat. Každý soubor má hierarchickou strukturu a skládá z několika objektů (MapServer, 2013). Každý objekt začíná klíčovým slovem a končí řetězcem END. Hlavním objektem je objekt MAP. V něm jsou obsaženy všechny ostatní, které určují vlastnosti mapové aplikace nebo služby. V tomto objektu se dají specifikovat parametry jako je název mapy, typ odesílání dat a dají se sem přidat další objekty, které můžou obsahovat seznam vrstev nebo vzhled zpracovávaných dat Geoserver GeoServer je open source server napsaný v Javě, který umožňuje uživatelům sdílet a upravovat geoprostorová data. Navrženo pro interoperabilitu, zveřejňuje údaje od všech hlavních prostorových zdrojů dat pomocí otevřených standardů. GeoServer vychází z implementace Open Geospatial Consortium (OGC), a je vysoce kompatibilní s Web Map Service (WMS). GeoServer tvoří základní prvek geoprostorově orientovaných webů (GeoServer, 2013). Geoserver umí načítat a produkovat velké množství formátů, u kterých umí také měnit a přepočítávat souřadné systémy. Součástí GeoServeru je přehledné GUI, které obsahuje většinu důležitých položek pro nastavení výstupu a poskytuje náhledy map v OpenLayers GeoNode Ve své podstatě je GeoNode založen na open source komponentech GeoServer, Geo- Network, Django a GeoExt, které poskytují platformu pro sofistikované zobrazení v prostředí webu, prostorovou vizualizaci a analýzu. Na skupině těchto produktů byl vybudován projekt, který poskytuje nástroje pro kompozici a prohlížení map, pro komplikovanější analýzy a pro správu účtů (Benthall, 2010). GeoNode podporuje také rozhraní pro distribuci mezi uživateli jako je hodnocení, komentáře a značkování dat, map a stylů. GeoNode je postaven na čtyřech základních principech: spolupráce, distribuce, kartografie a sběr dat (Benthall, 2010). Spoluprácí se myslí snadné sdílení dat a pokročilý systém hodnocení. Distribuce je usnadněna zjednodušeným instalátorem a automatickou tvorbou metadat k mapám. Kartografií je myšleno, že se GeoNode skládá z už existujících řešení GISových problémů, které začleňuje do jednoho systému. 3.7 Kritéria porovnání Tato práce se zaměřuje na zpracování standardů WMS, WFS a WPS. Díky tomu je třeba nalézt takový mapový framework, který zvládá pracovat se všemi třemi. Toto bude hlavní kritérium pro výběr nástrojů pro práci s mapami.
21 3.8 Výběr nejvhodnější varianty 21 Při tvorbě mapové aplikace se mezi klientem a serverem přenáší velký objem dat, takže je třeba, aby nástroje, ve kterých jsou tyto dvě části naprogramované, byly, co nejlépe odladěny. Přitom klademe kromě nároků na výpočetní výkon, také nároky na podporu co nejvíce webových prohlížečů a pokud je to možné, tak ještě na multiplatformost. Toto jsou nejdůležitější kritéria výběru pro tuto práci. Přihlíželo se však i k dalším, jako je cenová dostupnost, podpora ze strany tvůrců a uživatelská komunita. 3.8 Výběr nejvhodnější varianty Jako databázový systém byl zvolen PostgreSQL. Jeho velkou výhodou je, že má velkou podporu pro GIS aplikace a umožňuje uchovávat geoprostorová data v Post- GISové nástavbě. Dalším problémem bylo určit, ve kterém programovacím jazyce by měla být hlavní aplikace napsána. Pro tento jazyk je důležité, aby podporoval komunikaci se serverem a databází. V této části jsem volil mezi Pythonem a PHP. Pro oba jazyky jsou napsány skvělé frameworky. Pro Python je to Django a pro PHP je to Nette Framework. Tyto dva nástroje mají velmi podobnou funkčnost, oba řeší zabezpečení aplikací, komunikaci s databází i správu uživatelských účtů. Oba také mají tříúrovňovou architekturu. Django má výhodu ve své knihovně GeoDjango. Ta je velmi užitečná hlavně díky usnadnění vkládání dat do PostGISové databáze. Pro potřeby navržené aplikace však není potřeba úroveň komplexnosti, kterou GeoDjango poskytuje a k vývoji je potřeba akorát základní Django. Jelikož je využití obou programovacích jazyků při tvorbě aplikace srovnatelná, tak jsem zvolil podle osobních preferencí a podle toho, který lépe ovládám a vybral jsem Nette Framework. Při výběru jsem byl ovlivněn také početnou českou komunitou a skvělým šablonovacím systémem, které bude mít při tvorbě aplikace velkou roli. Nakonec bylo třeba zvolit nástroje implementující zobrazování map a práci s nimi. Chvíli jsem zvažoval použití ArcGIS Online, protože poskytuje vysoce výkonné prostředí pro zpracovávání map, které díky propojení s frameworkem Dojo nabízí kvalitní modulární strukturu. Obsahuje také spoustu implementovaných řešení včetně podpory pro mobilní telefony. Součástí toho tohoto mapového frameworku je i možnost tvořit projekty mimo hlavní aplikaci na svých stránkách a následně je nahrávat do aplikací nebo za příplatek takto implementované vrstvy sdílet jako samostatné služby. Hlavní problém u tohoto frameworku však je, že nepodporuje některé standardy OGC, v tomto případě potřebné WFS a WPS. ArcGIS má své vlastní standardy pro zpracování vektorových dat a geoprocessing, které ale pro toto zadání nelze využít. Díky tomu byl zvolen mapový framework OpenLayers. Tento framework je vhodný hlavně kvůli široké nabídce mapových formátů, se kterými je schopen praco-
22 3.8 Výběr nejvhodnější varianty 22 vat. Nenabízí však takovou podporu tvůrců nebo rychlost vykreslování jako ArcGIS Online. Svou komplexností a možnostmi pro zobrazování map se ArcGISu vyrovná.
23 4 NÁVRH WEBOVÉ APLIKACE PRACUJÍCÍ S MAPOVÝMI STANDARTY 23 4 Návrh webové aplikace pracující s mapovými standarty 4.1 Návrh řešení Součástí této bakalářské práce má být grafické uživatelské rozhraní pro práci s formáty WMS, WFS a WPS. Aplikací, které umožňují mapové vrstvy zobrazit, existuje celá řada, protože to díky existujícím mapovým frameworkům není vůbec složité. Proto jsem se rozhodl, že aplikace bude umět mapové služby nejenom zobrazovat, ale i vytvářet. Pro potřeby ukázky postačí, když půjde nahrát geoprostorová data do PostGISové databáze a následně je bude možné přes MapServer publikovat dál. Tyto dvě části budou v grafickém rozhraní jednoznačně rozlišeny pomocí menu. Součástí rozhraní pro zobrazování bude panel pro správu vrstev s možností jejich vypínání, zapínání a nastavení vlastností jako je průhlednost. Vrstvy také bude možné řadit do skupin. Takto vytvořené projekty se budou ukládat do databáze. K těm pak bude mít přístup jen uživatel, který projekt vytvoří. Během zobrazení vrstev bude mít uživatel možnost nad zobrazenými daty provést základní výpočetní operace pomocí WPS. Publikování mapových služeb bude odděleno od části se zobrazováním projektů. Uživatel bude moct nahrát zazipovaný soubor formátu shapefile, který bude obsahovat všechny potřebné informace pro mapový výstup jako je geometrie a souřadnicový systém. Tyto informace budou uloženy do databáze. Aplikace se bude ve své funkčnosti podobat GeoNode, ale díky využití rozdílných technologií nebude tolik náročná na výkon serveru. Obrázek 1: Databázové schéma použité v aplikaci.
24 4.2 Způsob užití aplikace Způsob užití aplikace Obrázek 2: Use Case diagram implementované aplikace.
25 5 IMPLEMENTACE ŘEŠENÍ 25 5 Implementace řešení 5.1 Serverová část V řešení bude zahrnuta tvorba vlastních mapových služeb. Díky vybraným technologiím je potřeba nainstalovat a nastavit Mapserver a PostgreSQL s nástavbou PostGIS. Nejprve musí být nastaven server, na kterém bude aplikace umístěna. Následně se vytvoří databáze pro uživatele. Server musí být nastaven tak, aby na něm fungovalo PHP, MapServer a PostGISová databáze. 5.2 Nastavení serveru a databáze Server běží na operačním systému Ubuntu 12.04, proto se pro instalaci webového serveru Apache 2, PHP5, PostgreSQL a MapServeru dá využít balíčkovací systém apt-get. Pro jejich nainstalování lze použít příkazy: sudo apt get i n s t a l l apache2 sudo apt get i n s t a l l php5 sudo apt get i n s t a l l php5 gd sudo apt get i n s t a l l p o s t g r e s q l 9.2 Pro nainstalování PostGISové nástavby pro PostgreSQL a MapServeru je potřeba do apt-get přidat repositář ppa:ubuntugis/ppa. Pro práci s mapovými daty v PHP je vhodné nainstalovat MapScript (MapScript, 2014). sudo apt add r e p o s i t o r y ppa : ubuntugis /ppa sudo apt g e t update sudo apt get i n s t a l l p o s t g i s sudo apt get i n s t a l l cgi mapserver sudo apt get i n s t a l l php5 mapscript Nakonec je ještě potřeba nainstalovat do PHP podporu pro PostgreSQL (aby se dalo k databázi přistupovat přímo z kódu): sudo apt get i n s t a l l php5 p g s q l 5.3 Nastavení Nette Před samotným psaním kódu je třeba vytvořit si základní adresářovou strukturu a nastavit konfigurační soubory. Adresářová struktura je v této práci převzatá ze základního sandboxu, který je distribuován s balíčkem Nette 2.0 (Stažení a instalace, 2013).
26 5.4 Datová vrstva 26 Nastavení souborů probíhá hlavně v souboru config.neon. Zde jsou definovány Sessions, připojení k databázi, služby, továrničky na komponenty (viz. komunikace s maily a mnoho dalších nastavení. Všechna nastavení probíhají ve formátu NEON, takže je třeba, aby veškerá nastavení byla rovnoměrně odsazena (Konfigurace, 2013). Pro potřeby aplikace je třeba specifikovat parametry databáze. Je nutné k ní nastavit přihlašovací jméno, heslo, typ databáze, její adresu a tabulku, se kterou bude pracovat. Session je pro potřeby této aplikace nastaveno na 14 dní. Tento parametr je zejména využit při přihlašování, kdy uživatel může zaškrtnout, že nechce být odhlášen, když je nečinný 20 minut, a tak je u něj na počítači uložena informace o přihlášení. Ta vyprší nejpozději za 14 dní (Přihlašování oprávnění uživatelů, 2013). V tomto souboru je dále důležité specifikovat adresu jednotlivých služeb, které jsou volány během chodu aplikace. Hlavní služby jsou: Authenticator Stará se o přihlašování a odhlašování Router Obsahuje funkce pro routování Repositáře Pro jednotlivé databázové tabulky (viz. Datový model) 5.4 Datová vrstva V rámci datové vrstvy je nutné vytvořit databázi a napsat pro ni funkce, které s ní budou komunikovat. Ve vybraném databázovém systému byla vytvořena databáze bakal podle navrhnutého schématu. Databáze obsahuje tabulky: users Tabulka uchovává informace o uživatelských účtech a přihlašovacích údajích. id Primární klíč tabulky, typ integer, automatické navýšení při tvorbě nové položky tabulky. login Přihlašovací jméno uživatele, typ character varying(200). password Hash uživatelského hesla, typ character varying(400). mail Uživatelův , musí mít podobu u, typ character varying (200). validation Kontrolní řetězec odeslaný na při vytvoření účtu. Je potřeba aby byl nastaven na prázdnou hodnotu, aby se mohl uživatel přihlásit, typ character varying(300).
27 5.4 Datová vrstva projects Obsahuje informace o jednotlivých uživatelských projektech jako je datum tvorby projektu, název, místo uložení a popis projektu. Obsahuje také informaci o tom, kdo daný projekt vlastní. id Primární klíč tabulky, typ integer. id_user Cizí klíč odkazující na tabulku users, typ integer. name Název projektu, typ character varying(150). description Popis projektu, typ text. created Datum vytvoření projektu, typ date. edited Datum poslední editace projektu, typ timestamp files Tabulka, která uchovává informace o všech souborech, které se vytvoří na serveru nebo se na něj nahrají. id Primární klíč, typ integer. filename Název nahraného souboru, typ character varying(150). directory Relativní cesta k souboru, typ character varying uploaded Datum a čas vytvoření souboru na serveru, typ timestamp. size Velikost souboru v bajtech, typ real layers Tabulka obsahující informace o vrstvách vztahujících se k určitému projektu. id Primární klíč, typ integer. visible Informace o nastavení vrstvy k zobrazení, typ boolean. lft Popisuje strukturu stromu. Určuje kolik má nalevo od sebe sousedů, typ integer. rgt Popisuje strukturu stromu. Spolu se sloupcem lft udávají množství vrstev, které podstrom začínající tímto záznamem v tabulce (uzlem) obsahuje, typ integer. parent Id uzlu, který je předkem daného záznamu v tabulce (uzlu), typ integer. opacity Úroveň průhlednosti vrstvy. Nabývá hodnot od 0 do 1, typ real.
28 5.4 Datová vrstva services Tabulka obsahující informace o službě, která je publikována pomocí MapServeru. id Primární klíč, typ integer. data_table Název tabulky, ze které si služba bere geometrii, typ character varying(300). name Název služby, typ character varying(150). type Typ služby. 1 reprezentuje službu WMS; 2 reprezentuje WFS, typ smallint. mapfile Cizí klíč odkazující na tabulku files, typ integer. id_user Cizí klíč odkazující na tabulku users. Poskytuje informaci o tvůrci služby, typ integer created Datum a čas vytvoření služby, typ timestamp url URL adresa, přes kterou jde komunikovat se službou, typ character varying(600) Tabulky s geometrií pro mapové služby Tyto tabulky obsahují informace potřebné pro publikování mapových služeb (WMS, WFS) a reprezentují shapefile, nahraná do databáze. Jejich název se tvoří z kombinace loginu uživatele, který službu publikuje a názvu publikované služby (např. filip_wmstest). Jsou generovány automaticky pomocí PostGISu při importovaní shapefilu. Tato tabulka se vytvoří pro každou službu publikovanou přes MapServer, protože kdyby se veškerá geometrie pro všechny služby měla ukládat do jedné tabulky, tak by brzy došlo k přehlcení této tabulky a to by velmi zpomalovalo chod všech mapových služeb. Takto vytvořené tabulky musí být zaregistrovány v PostGISové tabulce geometry_columns, kde jim je přidělen souřadnicový systém. Hlavní sloupce: gid Primární klíč pro geometrické objekty, typ integer. geom Textová reprezentace jednoho polygonového objektu, typ geometry. Pro komunikaci s databází byla pro tento projekt vybrána knihovna Nette/Database, která je součástí základního balení Nette. Ošetřuje SQL injection a podporuje opakovanou použitelnost částí kódu (Procházka, 2013). Pro každou tabulku byl napsán repozitář. V nich jsou definované všechny metody, které jsou použity ke komunikaci s databází. Všechny dědí od společného abstraktního repozitáře Repository.
29 5.5 Aplikační vrstva Aplikační vrstva Tato vrstva je v Nette popsána pomocí takzvaných presenterů. Jsou to soubory metod, které spojují model a view (pohled) dohromady. Nejprve na základě požadavku od uživatele vyvolá příslušnou aplikační logiku a pak požádá view o vykreslení výsledku (Presentery a šablony, 2013). Každý požadavek na aplikaci se dostane přes soubory index.php a bootstap.php do objektu $application. Ten zavolá metody routeru, aby předaný http požadavek přeložil a určil, pro který presenter je požadavek určen a kterou akci s ním chce vykonat. S touto informací objekt $application, přistoupí k vyplnění požadavku a vytvoří instanci třídy daného presenteru. Presenter je objekt, který vezme požadavek přeložený routerem a zašle odpověď. Odpovědí může být HTML stránka, obrázek, XML dokument, soubor na disku, JSON, přesměrování nebo cokoliv je třeba. Tohle se zpravidla odehraje v metodě rendershow, kde slovo Show odpovídá názvu akce a parametr požadavku id bude předán jako parametr této metodě rendershow() (MVC aplikace presentery, 2013). Jako základ v této aplikaci slouží BasePresenter. V něm jsou popsány metody, které definují základní rozhraní a umožňují vytvářet formuláře, které se vykreslí na každé stránce. Všechny ostatní presentery dědí z BasePresenteru. V této třídě je metoda beforerender(), která naplní uživatelské menu odkazy a zjistí, zda je uživatel přihlášen. Ošetřuje také odhlašování a přihlašování uživatelů. Další důležitou částí presenterů jsou komponenty. V této aplikaci se tvorba komponent používá hlavně na tvorbu formulářů. V každé stránce je umístěn minimálně jeden formulář. Ty jsou generovány vždy z jedné šablony, takže je možné využít již dříve napsaný formulář pro přihlašování a odhlašování a umístit ho na každou stránku Zabezpečení Jedním z největších nebezpečí pro webové stránky je Cross-Site Scripting (XSS). Metoda spočívá v narušení webových stránek zneužitím neošetřených výstupů. Útočník pak dokáže do stránky podstrčit svůj vlastní kód a tím může stránku pozměnit nebo dokonce získat citlivé údaje o návštěvnících. Proti XSS se lze bránit jen důsledným a korektním ošetřením všech řetězců. Přitom stačí, aby to kodér jen jednou opomenul, a celý web může být kompromitován. Tento problém Nette řeší pomocí technologie Context-Aware Escaping. Všechny výstupy ošetřuje automaticky a tak se nemůže stát, že by kodér na něco zapomněl (Zabezpečení před zranitelnostmi, 2013). Dalším typem zásahu je Cross-Site Request Forgery. Tento útok spočívá v tom, že přiměje uživatele navštívit stránku, která skrytě vykoná útok na webovou aplikaci, kde je uživatel zrovna přihlášen. Lze takto například pozměnit nebo smazat článek, aniž by si toho uživatel všiml. Proti útoku se lze bránit generováním a ověřováním autorizačního tokenu (Zabezpečení před zranitelnostmi, 2013).
30 5.5 Aplikační vrstva 30 Nette Framework se snaží chránit uživatele i proti dalším typům útoků jako jsou URL attack, control codes, invalid UTF-8. Zároveň také automaticky konfiguruje PHP, takže se vývojář nemusí starat o zabezpečení session. Z toho plyne, že pokud tato aplikace nebude mít chybu v aplikační logice, tak by měla být dobře zabezpečena Registrace uživatelů Pro registraci uživatelů byl napsán pohled Registration, který obsahuje šablony default a control. Šablona default definuje obsah formuláře pro přihlašování nových uživatelů. Šablona control pak obsahuje definici pro zobrazení stránky, která zpracovává ověřovací kódy. Dále bylo nutné napsat pro tyto šablony presenter. V něm jsou napsané metody, které naplňují stránky informacemi. Jsou to metody: rendercontrol() V této metodě je zpracován požadavek od registrovaného uživatele. createcomponentregistrationform() Továrnička na registrační formulář. registrationformsubmitted(form $form) Zde je zpracován odeslaný formulář. Při načtení stránky je možné si v sekci registrace založit nový účet. Vygeneruje se zde formulář, do kterého je třeba zapsat přihlašovací jméno, heslo, potvrzení hesla a . Ještě před načtením stránky jsou pomocí sql dotazu vybrána všechna jména a e- maily z databáze. Díky tomu můžeme při tvorbě nového uživatele zkontrolovat, jestli se do databáze zadává unikátní jméno a . K této kontrole přidáme ještě další validační pravidla jako je podmínka pro shodování se hesel a potřeba mít vyplněny všechny položky. Po odeslání formuláře se nejdříve vygeneruje ověřovací kód. Jeho generování je založeno na použití php funkce sha1(), která vytvoří hash z uživatelského jména, aktuálního času a vlastního řetězce (w3school.com, 2013). Tento kód se uloží k uživateli do databáze. Při přihlášení je vždy prováděna kontrola na prázdnost tohoto políčka v tabulce, a když je pořád vyplněno, tak je uživatel přesměrován a vypíše se chyba (Kocmánek, 2011). Po vygenerování ověřovacího kódu se vytvoří ová zpráva, do které se kód uloží. Tato správa se odešle na ovou adresu zadanou uživatelem. Poté se uživateli zobrazí zpráva, která ho žádá o potvrzení své registrace přes kód, který mu přišel na . Odkaz v mailu se skládá z odkazu na stránku, která zpracovává příchozí kódy, a z vytvořeného kódu. Tento je poslán přes nastavený SMTP server (Odesílání ů, 2013).
31 5.6 Správa mapových projektů 31 Když uživatel klikne na odkaz, tak je přesměrován. Na stránce je zpracován jeho potvrzovací kód, který je tak vymazán z databáze u jeho jména a je mu umožněno se přihlásit. Je-li zadán nesprávný kód nebo kód, který už byl použit, tak je vyhozena chyba. 5.6 Správa mapových projektů Po přihlášení se uživatel objeví v seznamu svých mapových projektů. Zde má možnost buď založit nový projekt, nebo upravit stávající. Při tvorbě nového projektu se vygeneruje formulář pro zadání názvu nového projektu. Po odeslání formuláře se do databázové tabulky projects uloží nový záznam obsahující název projektu a kdy byl založen. Zároveň se do tabulky layers vygeneruje první záznam k projektu, představující kořenový adresář pro všechny vrstvy, které budou přidané. Po otevření čerstvě vytvořeného projektu se zobrazí plná aplikace se základní podkladovou mapou. Další vrstvy je třeba připojit. Na pravé straně je proto otevřený panel pro spravování uživatelských vrstev Zakládání mapových projektů Sekce projektů je definována v presenteru Homepage, který se načítá při vstupu na hlavní stránku. V tomto presenteru jsou definovány tři šablony: default (úvodní strana), map (mapová aplikace) a createproject (založení nového projektu). Při načtení hlavní stránky se zobrazí seznam vytvořených projektů. Každá položka tohoto seznamu má dva odkazy. První z nich slouží k otevření projektu do plné mapové aplikace, kde může uživatel projekt editovat. Pomocí druhého se dá projekt smazat. Na hlavní straně se nachází také tlačítko Založit nový projekt. Na tomto odkazu se nachází formulář pro vytvoření nového, kde lze zadat název projektu a jeho popis Generování MapFile MapFile je textový soubor. Proto se vytváří pomocí parsování jednotlivých částí souborů typu MapFile a dat, které se do něj vloží. Při generování se nejprve vezme z PostGISové databáze hranice oblasti dat, ve které se bude služba vykreslovat (extent). Ta se přidá do výsledného souboru a pokračuje se načtením dat o konkrétní službě. Uživatel má možnost přes aplikaci publikovat WMS i WFS služby. Podle typu služby se při tvorbě MapFile nastaví metadata ke konkrétní službě.
32 5.7 Prezentační vrstva (Pohled) Prezentační vrstva (Pohled) Pohled (View) je vrstva aplikace, která má na starost zobrazení výsledku požadavku. Obvykle využívá šablonovací systém a stará so o to, jak zobrazit komponenty nebo výsledky získané z modelu (MVC aplikace presentery, 2013). Pro všechny stránky je jedna základní V ní je definovaná html hlavička, odkazy na skripty a styly a celkové rozhraní aplikace. Dále jsou definovány šablony pro konkrétní stránky, které z hlavní šablony dědí a obsahují obsah týkající se konkrétní stránky. Každá stránka má šablonu s názvem default.latte, ke které je definovaný konkrétní presenter. Z těchto stránek je možno se odkazem dostat na další úrovně podstránky Mapová aplikace Pro implementaci standardů WMS, WFS, a WPS byl vybrán framework OpenLayers, který jako jeden z mála umožňuje zpracovávat WFS a WPS. Pro implementaci WPS byla napsána v PHP třída WPSHandler. Z něho dědí třída MeasureWPS, která implementuje konkrétní WPS. S ní se z pohledu komunikuje pomocí zasílání AJAXových požadavků. AJAXové komunikace bylo dosaženo tak, že se v šabloně k tlačítku s měřením přidala třída Ajax a zároveň se v presenteru upravila funkce handlemeasure(), která komunikaci s MeasureWPS. Byla sem přidána podmínka, že když se jedná o AJAXový požadavek, tak se kromě vložení nového komentáře ještě invaliduje textové pole s výsledkem měření (AJAX & snippety, 2013). Invalidace znamená, že při změně konkrétního prvku nepotřebujeme znovu načíst stránku. V tomto případě je změněna hodnota výsledku měření. 5.8 Mapové panely V zájmu přehlednosti bylo při návrhu uživatelského rozhraní rozhodnuto, že práce s mapou aplikací bude rozdělena do několika tematických panelů. Díky tomu nebude uživatel najednou přehlcen a bude moci využívat najednou jen konkrétní některé funkce pro práci s mapou Panel Mapové vrstvy Jedná se o hlavní panel v mapové aplikaci. Skládá se ze seznamu vrstev a skupin zobrazených ve stromové struktuře a tlačítek sloužících k přidávání položek do seznamu. Stromová struktura je implementována za pomoci modifikovaného traverzování. To v praxi znamená, že v tabulce layers jsou přidány sloupce lft a rgt (klíčová slova left a right jsou v SQL vyhrazena), které slouží k uchovávání struktury. Kořenový
33 5.8 Mapové panely 33 uzel obsahuje minimální hodnotu lft a maximální hodnotu rgt celého stromu, stejně tak jako jeho potomci obsahují minimální hodnotu lft a maximální hodnotu rgt svých podstromů. Když se celý strom seřadí podle hodnoty lft, tak získáme všechny informace, které potřebujeme ke správnému zobrazení celého stromu. Více podrobností o procházení stromu bude popsáno v části Strom vrstev. Díky této metodě se nemusí volat několik databázových příkazů, ale stačí nám na celý strom jen jeden (Van Tulder, 2003). Když se zmáčkne tlačítko pro přidání skupiny, tak se otevře interaktivní dialogové okno, kde je možné zadat název nové skupiny. Po vyplnění formuláře se přes signál pomocí AJAXu pošle informace o nové skupině na server. Zde se zpracuje, přidá se do tabulky layers a do aplikace se zašle signál k překreslení stromu vrstev. Tlačítko pro přidání vrstvy funguje obdobně. Obsahuje však jeden mezikrok navíc. Když uživatel potvrdí vyplněné údaje (název, typ služby a url), tak se na zadanou službu pošle požadavek GetCapabilities. Ten vrátí xml, ze kterého se dají zjistit informace o dané službě. Pomocí JavaScriptu se získá seznam dostupných vrstev z dané služby a následně se otevře nové dialogové okno, ve kterém si uživatel může vybrat konkrétní vrstvy dané služby. Díky tomu je možné přidat stejnou službu několikrát, pokaždé s jinými vrstvami Panel pro práci s WPS Tento panel obsahuje formulář pro práci s WPS. Skládá se ze dvou prvků: Políčka pro výběr konkrétní služby a textového pole, ve kterém se po dokončení výpočtu zobrazí výsledek. Když je tento panel aktivní, tak se zpřístupní kreslící nástroj, jehož pomocí lze do mapové aplikace zakreslit geometrii, na které bude proveden výpočet. Při přepnutí do jiného panelu se kreslící nástroj deaktivuje Implementace ukládání mapových projektů Další klíčová část aplikace je ukládání projektů pro jednotlivé uživatele. Pro tuto část byl napsán skript, který při načtení aplikace zkontroluje, jestli je v URL předán identifikátor mapového projektu a jestli předaný identifikátor odpovídá projektu, který uživatel vlastní. Není-li v adrese obsažen validní identifikátor, tak se aplikace přesměruje na stránku se seznamem dostupných projektů. Je-li projekt dostupný, tak v panelu Mapové vrstvy je možnost měnit jeho strukturu a vlastnosti. Toho je dosaženo díky několika AJAXovým signálům, které jsou při práci s projektem volány. Jedná se o signály: Insertlayer($parameters) Vloží novou vrstvu z pohledu do databáze. Deletelayer($parameters) Vymaže vrstvu, která byla smazána v pohledu, z databáze.
34 5.8 Mapové panely 34 Movelayer($parameters) Při přesunutí podstromu vrstev v pohledu, zaznamená tuto změnu v databázi. Changevisible($parameters) Změní nastavení viditelnosti vrstvy v databázi. Changeopacity($parameters ) Změní nastavení viditelnosti vrstvy v databázi Strom vrstev Každý mapový projekt je reprezentován stromem, který je implementován pomocí modifikované metody traverzování. Každý uzel ve stromu představuje buď skupinu vrstev, nebo samostatnou vrstvu (list). Metoda spočívá v definování pravé a levé hodnoty pro každý uzel stromu, kdy v každém uzlu, který je kořenem podstromu, se nachází mezi těmito dvěma hodnotami množina uzlů s pravou a levou hodnotou, které jsou větší než levá hodnota kořenu a menší než pravá hodnota kořenu. Této metody se využívá hlavně kvůli optimalizaci, protože je možné pomocí zavolání jediného SQL dotazu získat celý strom. Při vypsání takto strukturovaných dat seřazených podle levé hodnoty, můžeme určit, kde který podstrom začíná nebo končí. V šabloně map.latte se při vykreslení aplikace naplní proměnná $projects_layers seřazeným seznamem vrstev. Ten se následně prochází v cyklu a postupně se do vykreslené webové stránky vkládají html elementy představující jednotlivé vrstvy. V šabloně je strom tvořen nečíslovaným seznamem s vnořenými podseznamy. Pomocí JQuery je pro kořenový uzel skupiny nastavený parametr Sortable. Díky tomu je možné v seznamu hýbat s jednotlivými prvky a přenášet je z jednoho uzlu do druhého. Všechny stromové prvky mají na některé své události napojeny AJAXové signály, které při aktivaci odesílají na server data o změně stavu. Ten se následně vloží do databáze.
35 5.9 Testování Testování Publikování WMS a WPS Po přihlášení jsem se přepnul do seznamu mých publikovaných. Vybral jsem nejprve, že chci publikovat WMS službu (tlačítko Vytvořit novou WMS). Byl jsem přesměrován na formulář, kde jsem zadal testwms jako jméno služby a vybral zazipovaný shapefile z pevného disku. Po odeslání formuláře byl soubor úspěšně nahrán na server, kde byl rozbalen a zpracován. V databázi se vytvořila tabulka filip_testwms. Obrázek 3: Seznam vytvořených mapových služeb. V mém seznamu se objeví nová služba s adresou: Z této služby jsem pomocí prohlížeče přes metodu GetCapabilities získal data týkající se popisu služby a seznamu dostupných vrstev. Služba obsahuje jednu vrstvu s názvem WMStest. Test publikování WFS probíhal obdobně. Na jeho konci byl získán výpis funkcí služby přes GetCapabilities.
36 5.9 Testování 36 Obrázek 4: Ukázka z výpisu GetCapabilities u publikované WMS. Obrázek 5: Ukázka z výpisu GetCapabilities u publikované WFS Založení nového mapového projektu V seznamu projektů jsem zmáčkl tlačítko Založit nový projekt. Byl jsem přesměrován na formulář, kde jsem vyplnit název projektu: Testovací projekt a popis projektu: Test. Následně se mi v seznamu projektů objevil nový projekt. Ten jsem otevřel do plné mapové aplikace. Mapová aplikace se vykreslila se základní podkladovou mapou Vložení vrstvy do projektu a její zobrazení V mapové aplikaci jsem zmáčkl tlačítko Přidat vrstvu. V dialogu, který se objevil, jsem zadal název vrstvy Testovací WMS, určil typ vrstvy jako WMS a zadal adresu služby, kterou jsem vytvořil v předchozí části. Po odeslání formuláře se objevilo nové dialogové okno, kde jsem zaškrtl jedinou vrstvu, která byla k dispozici. Po potvrzení se vrstva promítla do mapy.
37 5.9 Testování 37 Obrázek 6: Vytvořená mapová aplikace Měření pomocí WPS V mapové aplikaci jsem se přepnul do panelu Výpočty. Tento panel je rozdělen na dvě části: Topologie a Měření vzdáleností. Topologie definuje prostorové vztahy mezi vektorovými objekty GIS. Pomocí topologických pravidel lze definovat vztahy mezi jednotlivými prvky v jedné vrstvě nebo napříč dvěma vrstvami. Uvedený příklad řeší, jestli se dva vektorové objekty v mapě překrývají. Obrázek 7: Ukázka z měření. Do mapového projektu jsem vložil WFS vrstvu Zvolil jsem si vektorové typy: Tasmani State Boundaries a Tasmania Water Bodies. Nejdřív jsem si označil celou Tasmánii a následně vodní nádrž. Po odeslání údajů mi ze serveru přišla zpráva, že se nádrž nachází uvnitř státu.
GeoHosting. Martin Vlk. (vypusťte svoje data do světa) Help forest s.r.o. člen skupiny WirelessInfo 2008
GeoHosting (vypusťte svoje data do světa) Martin Vlk Help forest s.r.o. člen skupiny WirelessInfo 2008 Využívání geografických dat Jak můžeme pracovat s geografickými daty? Práce s vlastními geografickými
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
IS pro podporu BOZP na FIT ČVUT
IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod
INFORMAČNÍ SYSTÉMY NA WEBU
INFORMAČNÍ SYSTÉMY NA WEBU Webový informační systém je systém navržený pro provoz v podmínkách Internetu/intranetu, tzn. přístup na takový systém je realizován přes internetový prohlížeč. Použití internetového
Publikování map na webu - WMS
Semestrální práce z předmětu Kartografická polygrafie a reprografie Publikování map na webu - WMS Autor: Ondřej Dohnal, Martina Černohorská Editor: Filip Dvořáček Praha, duben 2010 Katedra mapování a kartografie
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
Alena Malovaná, MAL305
Alena Malovaná, MAL305 GML WFS WMF Geografický značkovací jazyk (Geographic Markup Language - GML) Jedná se o velmi rozšířený standard pro popis geodat umožňující sdílení i integraci dat. Jeho základem
Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:
Technologie Marushka Základním konceptem technologie Marushka je použití jádra, které poskytuje přístup a jednotnou grafickou prezentaci geografických dat. Jádro je vyvíjeno na komponentním objektovém
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP Maturitní projekt Vypracoval: Denis Ptáček Třída: 4B Rok: 2014/2015 Obsah 1. Použité nástroje... 3 1.1 NetBeans
1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
Mapové služby podle OGC
Mapové služby podle OGC OpenGIS Web Services Common Specification - OWS Web Map Service - WMS Web Feature Service - WFS Web Coverage Service - WCS Web Processing Service - WPS zhodnocení služeb Geography
PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita
Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé
Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni
Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,
1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4
CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
GIS a nemapové služby
GIS a nemapové služby Radek Kuttelwascher ARCDATA PRAHA, s.r.o. GIS služby lze využít t z různých r klientů PopFly.NET Java Virtual Earth Yahoo Pipes JavaScript SAP Google Maps Flex/Flash Microsoft Silverlight
Otevřený katastr (OK)
Otevřený katastr (OK) Karel Jedlička, Jan Ježek, Jiří Petrák smrcek@kma.zcu.cz, h.jezek@centrum.cz, jiripetrak@seznam.cz Západočeská univerzita v Plzni, Fakulta aplikovaných věd, katedra matematiky oddělení
Maturitní projekt do IVT Pavel Doleček
Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování
PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě
PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především
Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U
Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní
ArcGIS Server 10. Řešení pro sdílení geodat
ArcGIS Server 10 Řešení pro sdílení geodat ArcGIS Server 10 ArcGIS Server je komplexní nástroj, který představuje platformu pro poskytování služeb GIS umožňujících pořizování, správu a analýzu prostorových
ArcGIS Server 10.1/10.2
ArcGIS Server 10.1/10.2 Úvod do mapového serveru firmy ESRI Podpořeno grantem FRVŠ číslo 2308G1/2012. Katedra geomatiky, www.company.com Úvod Trend dnešní doby Desktop > Server (Cloud) ESRI je klíčovým
E-learningovýsystém Moodle
E-learningovýsystém Moodle Jan Povolný Název projektu: Věda pro život, život pro vědu Registrační číslo: CZ.1.07/2.3.00/45.0029 Co je to Moodle? - systém pro tvorbu a správu elektronických výukových kurzů
TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ
TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí
Formy komunikace s knihovnami
Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
Webové služby pro prostorová data
February 5, 2016 Obsah Úvod 1 Úvod 2 3 4 V čem se liší mapy na počítači od papírových? Můžeme zoomovat Můžeme mapou posunovat Můžeme vidět naší polohu Jak na mapě měříme? Můžeme mapy kombinovat V čem se
internetu v rámci výuky
Publikování map na internetu v rámci výuky Jakub Havlíček Digitální itál technologie v geoinformatice, kartografii a DPZ 23.10.2012 Praha úvod současný stav možnosti Obsah statické obrázky klikací mapy
Olga Rudikova 2. ročník APIN
Olga Rudikova 2. ročník APIN Redakční (publikační) systém neboli CMS - content management system (systém pro správu obsahu) je software zajišťující správu dokumentů, nejčastěji webového obsahu. (webová
SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek
Prezentace aplikace Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Osnova Úvod Programovací jazyk - PHP Etapy vývoje Funkce aplikace Co SW umí Na čem se pracuje Vize do budoucna Úvod Úvod Inspirováno
8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320
Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní
RESTful API TAMZ 1. Cvičení 11
RESTful API TAMZ 1 Cvičení 11 REST Architektura rozhraní navržená pro distribuované prostředí Pojem REST byl představen v roce 2000 v disertační práci Roye Fieldinga, zkratka z Representional State Transfer
SA Služby IS DMVS LK
Příloha A Směrnice IS DMVS LK Služby IS DMVS LK Verze 1.1 DMVS Libereckého kraje Zpracoval Datum 30. 10. 2015 Označení ŘD Popis Vydavatel URL Platnost Práva Liberecký kraj a aktivní partneři SA Služby
Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku
Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250
Mapový server Marushka. Technický profil
Technický profil Úvodní informace Mapový aplikační server Marushka představuje novou generaci prostředků pro publikaci a využívání dat GIS v prostředí Internetu a intranetu. Je postaven na komponentové
Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads
Postup Úvodem Můj úkol při tomto projektu byl vytvořit model pro data, dle návrhového vzoru MVC. Jelikož v poslední době pracuji spíše s návrhovým vzorem HMVC (http://en.wikipedia.org/wiki/hmvc) ve frameworku
Systém JSR představuje kompletní řešení pro webové stránky malého a středního rozsahu.
Redakční systém JSR Systém pro správu obsahu webových stránek Řešení pro soukromé i firemní webové stránky Systém JSR představuje kompletní řešení pro webové stránky malého a středního rozsahu. Je plně
PostGIS. Luboš Hejduk, Petr Sedlář 2007
PostGIS Luboš Hejduk, Petr Sedlář 2007 Obsah Co je PostGIS Využití prostorových dat Způsob instalace PostgreSQL/PostGIS Správa databáze postgresql/postgis Práce s daty v PostgreSQL/PostGIS Import dat do
3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY
3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3.1 Tenký a tlustý klient Klientské aplikace nad XML dokumenty v prostředí internetu se dají rozdělit na dvě skupiny: tenký klient a tlustý klient.
Jakub Šesták. http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY
MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Datové služby sdružení CESNET http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY Jakub Šesták 5. 12. 2014 1. ročník navazujícího
Mapové servery. Novák Petr Katedra informatiky a geoinformatiky Fakulta životního prostředí Univerzita J. E. Purkyně v Ústí nad Labem.
Mapové servery Novák Petr Katedra informatiky a geoinformatiky Fakulta životního prostředí Univerzita J. E. Purkyně v Ústí nad Labem Prosinec 2010 1 Využití Internetu pro GIS Publikace geodat Sběr a aktualizace
Systém elektronického rádce v životních situacích portálu www.senorady.cz
Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML
rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek
rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek Co je to webová aplikace? příklady virtuální obchodní dům intranetový IS podniku vyhledávací služby aplikace jako každá jiná přístupná
Semináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
Snadný vývoj webových aplikací s Nette. Lukáš Jelínek
Snadný vývoj webových aplikací s Nette Lukáš Jelínek Proč framework? ušetří spoustu práce (implementace, úpravy) vývoj = co udělat, ne jak to udělat bezpečnost štábní kultura prostředky pro ladění podpora
1. Úvod do Ajaxu 11. Jak Ajax funguje? 13
Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje
ArcGIS for Server. V oblasti správy, vizualizace a zpracování prostorových dat nabízí ArcGIS for Server tyto možnosti:
ArcGIS for Server ArcGIS for Server ArcGIS for Server je komplexní nástroj, který představuje platformu pro poskytování GIS služeb umožňujících pořizování, správu a analýzu prostorových dat a jejich vizualizaci.
Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23
5 Obsah O autorech 15 O odborných korektorech 15 Úvod 16 Rozdělení knihy 16 Komu je tato kniha určena? 18 Co potřebujete, abyste mohli pracovat s touto knihou? 18 Sdělte nám svůj názor 18 Zdrojové kódy
Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů
- 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
ArcGIS Online Subscription
ArcGIS Online Subscription GIS pro organizace ArcGIS Online je GIS v cloudu. Poskytuje služby GIS v prostředí internetu, ať už se jedná o úložné místo, publikaci mapových a geoprocessingových služeb, nebo
Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice
Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice Návod k prezentačnímu mapovému portálu Obsah: 1. Úvod... 3 2. Obecná část mapového portálu...
ANOTACE vytvořených/inovovaných materiálů
ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a
Elektronická podpora výuky předmětu Komprese dat
Elektronická podpora výuky předmětu Komprese dat Vojtěch Ouška ouskav1@fel.cvut.cz 19. června 2006 Vojtěch Ouška Elektronická podpora výuky předmětu Komprese dat - 1 /15 Co je to SyVyKod? SyVyKod = Systém
Instalace a konfigurace web serveru. WA1 Martin Klíma
Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/
Vektorové dlaždice. a jejich využití pro vizualizaci dat katastru nemovitostí. Filip Zavadil, Cleerio s.r.o
Vektorové dlaždice a jejich využití pro vizualizaci dat katastru nemovitostí Filip Zavadil, Cleerio s.r.o Online správa a evidence majetku Cloudové řešení - data a informace na jednom místě, dostupné odkudkoliv
Úvod do tvorby internetových aplikací
CVT6 01a Úvod do tvorby internetových aplikací Osnova předmětu (X)HTML a tvorba webu pomocí přímého zápisu kódu Tvorba web designu a skládání stránek z kousků Skriptovací jazyky na webu Návrh software
Vzdělávací obsah vyučovacího předmětu
V.9.3. Vzdělávací obsah vyučovacího předmětu Vzdělávací oblast: Inormatika a informační a komunikační technologie Vyučovací předmět: Informatika Ročník: 1. ročník + kvinta chápe a používá základní termíny
STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE
STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které
Individuální projekt z předmětu webových stránek 2012/2013 - Anketa
Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Daniel Beznoskov, 2 IT A Skupina 1 Úvod Prohlášení o autorství Prohlašuji, že jsem individuální projekt z předmětu webových stránek na
Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:
Internetový prohlížeč CHROME Pro správné fungování veškerých funkcionalit, které nám nástroje společnosti Google nabízí, je dobré používat prohlížeč Chrome. Jeho instalaci je možné provést z webové adresy:
Georeferencované mapové podklady z WMS služeb
Georeferencované mapové podklady z WMS služeb Workshop Příprava mapových podkladů chata Junior, Kunčice u Starého Města pod Sněžníkem 24.-25. 1. 2015 web, web service, web-map-services web klient (IExploler,
Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009
Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené
Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb
Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb Ing. Radek Augustýn Výzkumný ústav geodetický, topografický a kartografický, v.v.i. Zdiby Abstrakt V návaznosti na zpřístupnění dat Registru
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 12.2.2015 Webové aplikace
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 12.2.2015 Webové aplikace Úvod strana 2 Vyučující Ing. Jiří Lýsek, Ph.D. Ing. Oldřich Faldík https://akela.mendelu.cz/~lysek/ https://akela.mendelu.cz/~xfaldik/wa/
Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,
Anotace sady: Dynamické internetové stránky, VY_32_INOVACE_PRG_PHP_01 Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Stupeň a typ vzdělávání: gymnaziální vzdělávání, 4. ročník
Mapa Česka: www.mapa-ceska.cz
Mapa Česka: www.mapa-ceska.cz Mapový portál Mapa Česka, který je dostupný na internetové adrese www.mapa-ceska.cz, byl vytvořen v roce 2014 v rámci bakalářské práce na Přírodovědecké fakultě Univerzity
Hardware Různé počítačové platformy (personální počítače, pracovní stanice, víceuživatelské systémy) Požadavek na konkrétní vstupní a výstupní zařízen
Základy teorie GIS Tomáš Řezník Vymezení pojmů Kartografie je věda, technologie a umění tvorby map, včetně jejich studia jako vědeckých dokumentů a uměleckých prací (International Cartographic Association,
Novinky verze 2.3.0 systému Spisové služby (SpS) e-spis LITE
ICZ a.s. Správa a řízení dokumentů Na hřebenech II 1718/10 147 00 Praha 4 Tel.: +420-222 271 111 Fax: +420-222 271 112 Internet: www.i.cz Novinky verze 2.3.0 systému Spisové služby (SpS) e-spis LITE Vypracoval
ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA
ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity
Internetové služby isenzor
Internetové služby isenzor Aktuální snímek z webové kamery nebo aktuální teplota umístěná na vašich stránkách představují překvapivě účinný a neotřelý způsob, jak na vaše stránky přilákat nové a zejména
Uživatelská dokumentace
Uživatelská dokumentace Verze 14-06 2010 Stahování DTMM (v rámci služby Geodata Distribution) OBSAH OBSAH...2 1. O MAPOVÉM SERVERU...3 2. NASTAVENÍ PROSTŘEDÍ...3 2.1 Hardwarové požadavky...3 2.2 Softwarové
FOSS4G úspěšné projekty
FOSS4G úspěšné projekty Erika Orlitová GISAT knihovna GDAL - Geospatial Data Abstraction Library vývoj je podporován OSGeo, licence X/MIT práce s rastrovými formáty na úrovni příkazové řádky informace
Už ivatelska dokumentace
Už ivatelska dokumentace Aplikace Portál úspěšných projektů je určena k publikování informací o projektech realizovaných za přispění některého z Operačních programů v gesci Ministerstva vnitra České republiky.
Vzdálená správa v cloudu až pro 250 počítačů
Vzdálená správa v cloudu až pro 250 počítačů S pomocí ESET Cloud Administratoru můžete řídit zabezpečení vaší podnikové sítě bez nutnosti nákupu, instalace nebo údržby dalšího hardwaru. Řešení je poskytováno
Obsah. Rozdíly mezi systémy Joomla 1.0 a 1.5...15 Systém Joomla coby jednička online komunity...16 Shrnutí...16
Obsah Kapitola 1 Seznámení se systémem Joomla!................................. 9 Přehled systémů pro správu obsahu....................................................10 Použití systému pro správu obsahu.....................................................11
Novinky. Autodesk Vault helpdesk.graitec.cz,
Novinky Autodesk Vault 2018 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky Autodesk Vault 2018 PDF dokument obsahuje přehled novinek produktu Autodesk Vault 2018. Obsah: Úvod...
Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.
Přednáška 5 1. Stručný přehled vývoje html H T m l (HTML...XML... html5), (Web API, JSON, REST,AJAX) 2. Některé související IT IP adresa, doménová adresa, name servery JavaScritp, Jquery, Angular PHP vs
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ MANAGEMENT PROJEKTŮ SPOLEČNOST DECADIC PROJEKT FRAMETRIX SPECIFIKACE POŽADAVKŮ AUTOR DOKUMENTU JIŘÍ JANDA BRNO 15. března 2012 Obsah 1 Úvod........................................
Význam a způsoby sdílení geodat. Ing. Petr Seidl, CSc. ARCDATA PRAHA, s.r.o.
Význam a způsoby sdílení geodat Ing. Petr Seidl, CSc. ARCDATA PRAHA, s.r.o. Geodata data s implicitním nebo explicitním vztahem k místu na Zemi data identifikující geografickou polohu a charakteristiky
Karel Bittner bittner@humusoft.com. HUMUSOFT s.r.o. HUMUSOFT s.r.o.
Karel Bittner bittner@humusoft.com COMSOL Multiphysics Co je COMSOL Multiphysics? - sw určený k simulaci fyzikálních modelů, na něž působí jeden nebo několik fyzikálních vlivů - sw úlohy řeší metodou konečných
Nastavení provozního prostředí webového prohlížeče pro aplikaci
Nastavení provozního prostředí webového prohlížeče pro aplikaci IS o ISVS - Informační systém o informačních systémech veřejné správy verze 2.03.00 pro uživatele vypracovala společnost ASD Software, s.r.o.
Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA
DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA Obsah Obsah... 4 Pinya CMS... 5 Přihlášení do systému... 6 Položky v menu administrace... 7 Uživatelé... 8 Správa uživatelů... 8 Nový uživatel... 9 Role... 10 Vytvoření
Podpořeno grantem FRVŠ číslo 2308G1/2012. Mapové služby ArcGIS Server 10.1
Mapové služby ArcGIS Server 10.1 Podpořeno grantem FRVŠ číslo 2308G1/2012. Katedra geomatiky, www.company.com OBSAH prezentace 1. Publikace 2. Mapové služby cache 3. Feature služby 4. Geoprocesingové služby
Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013
Šifrování Autentizace ní slabiny 22. března 2013 Šifrování Autentizace ní slabiny Technologie Symetrické vs. asymetrické šifry (dnes kombinace) HTTPS Funguje nad HTTP Šifrování s pomocí SSL nebo TLS Šifrování
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
WWW dotazovací služby pro prostorová data URM. Jiří Čtyroký Útvar rozvoje hl. m. Prahy
WWW dotazovací služby pro prostorová data URM Jiří Čtyroký Útvar rozvoje hl. m. Prahy Zpřístupnění geodat hl. m. Prahy 1. Mapové aplikace Zpřístupnění geodat hl. m. Prahy 1. Mapové aplikace 2. Geoportál
1. Technická specifikace části B:
1. Technická specifikace části B: 1. Obecné požadavky na zakázku Předmětem plnění této části veřejné zakázky je vývoj a implementace portálového řešení GIS města a všech jeho návazných nástrojů a služeb,
Evidence a správa kanalizace v GIS Kompas 3.2
IČ: 25472593 MK Consult, v.o.s. Drážďanská 493/40, 40007 Ústí nad Labem tel.,fax 47550500408, e-mail info@mkconsult.cz Evidence a správa kanalizace v GIS Kompas 3.2 Základní popis programu Kompas 3.2 Systém
Digitální mapa veřejné správy Plzeňského kraje - část II.
Příloha č. 1 Zadávací dokumentace Dodávka základního SW pro projekt DMVS PK Digitální mapa veřejné správy Plzeňského kraje - část II. Zadávací dokumentace výběrového řízení: "Dodávka základního SW pro
Integrujte. Sdílejte. Publikujte... Upoutejte...
Integrujte. Sdílejte. Publikujte... Upoutejte... Sběr, integrace a publikování prostorových a návrhových dat by nemělo být obtížné. Ani drahé. Ani trvat věčně. Autodesk MapGuide Enterprise vychází z MapGuide
Evidence městského mobiliáře v GIS Kompas 3.2
MK Consult, v.o.s. IČ 254 72 593 Drážďanská 493/40, 400 07 Ústí nad Labem tel.:475500408, 603145698; info@mkconsult.cz, www.mkconsult.cz Evidence městského mobiliáře v GIS Kompas 3.2 Základní popis programu
Databázové a informační systémy
Databázové a informační systémy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Jak ukládat a efektivně zpracovávat
Geoportál DMVS využití a další rozvoj
Geoportál DMVS využití a další rozvoj Ing. Michal Bílý OBSAH PREZENTACE Představení projektu DMVS Využití projektu a statistiky Plánovaný rozvoj Závěr PŘEDSTAVENÍ PROJEKTU Digitální mapa veřejné správy
Platforma ArcGIS. Platforma ArcGIS se skládá ze čtyř komponent: dat, zdrojů, portálu a aplikací.
Platforma ArcGIS Platforma ArcGIS Platforma ArcGIS je tvořena datovým obsahem, službami a softwarovými produkty, které spolu vzájemně komunikují. Je určena každému, kdo chce snadno a rychle sdělit informaci