ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Fakulta stavební, Katedra mapování a kartografie
Studijní program: Geodézie a kartografie
Studijní obor: Geodézie a kartografie

cvut

 

BAKALÁŘSKÁ PRÁCE

Webový portál o mapových službách

Vedoucí bakalářské práce: Ing. Petr Soukup, Ph.D.

 

květen 2007                   JAN JIRÁNEK

Úvod

Web Map Service (WMS) v překladu znamená webová mapová služba. Jedná se poměrně o mladou normu pro šíření geografických informací ve formě map. Tyto mapy jsou prezentovány jako obrazová data (rastr). První verze WMS byla vyvinuta Open Geospatial Consortium (OGC) kolem roku 2000. Jde o jeden z nejrozšířenějších standardů tohoto konsorcia, který byl především původně určen jako jeden z nástrojů GIS.

Mojí motivací k návrhu předmětu této práce "Webový portál o mapových službách" bylo to, že při prostudování témat bakalářských prací vypsaných katedrami oboru geodézie a kartografie mě zaujalo téma WMS Ing. Soukupa. Při průzkumu toho, co tato služba vlastně je, narazil jsem na problém v nedostatku informací na internetu. Po zjištění co WMS zamená, chtěl jsem si prakticky vyzkoušet fungování této služby. Objevil se ovšem další problém, spočívající v tom, že jsem nemohl najít WMS server, který bych si připojil do WMS prohlížeče.

Tak vzniknul nápad na vytvoření tohoto vyhledávacího portálu mezi WMS servery, který by obsahoval přehled WMS serverů území ČR, popř. SR. Zároveň součástí portálu by byla informační část popisující WMS, její použití, využití a základní principy.

Využití takového portálu by mohlo být všestranné, protože informace o WMS v českém jazyce na internetu sice jsou, ale nejsou ucelené. Komplexní seznam WMS serverů na našem území neexistuje a vyhledávací služba v metadatech WMS serverů existuje jen jedna [44] , a to v takové podobě, že nevyužívá všech možností těchto dat o datech (metadat). Portál by mohly využívat krajské úřady (jejich GIS oddělení), ČUZK, privátní sektor využívající možností WMS a další instituce a subjekty.

Takový portál by měl využívat nejnovější informační standardy pro web, jakými jsou XHTML 1.1 a CSS 2. Zároveň, aby portál fungoval jako databáze + program, měl by podporovat např. PHP a MySQL.

Stanovené cíle této práce jsou dosti obsáhlé. Již při zadání práce jsem se proto dohodl s vedoucím práce, že využiji výsledky bakalářské práce mého spolužáka Jana Říhy, který se také zabývá WMS, ale s ohledem na průzkum datových zdrojů. Výsledky jeho práce budou tudíž využity v informační sekci webového portálu.

Vymezení pojmů

Pojmy
klient softwarový produkt, který se může dovolávat operace ze serveru souřadnicový systém sada matematických pravidel pro specifikování jak mají být souřadnicím přiřazované body [ISO 19111]
rozhraní pojmenovaná sada operace charakterizující chování entity [ISO 19119]
vrstva nebo také layer je základní jednotka informace Web Map Service, jedná se o vrstvu zobrazující geografické informace ve formě mapy
styl vrstvy nebo také style je rozšiřující možností vrstvy (layer), kdy jsou šířeny stejné mapové produkty, ale v jiné formě prezentace (např. v jiném barevném schématu)
query jde o obecný dotaz ze strany klienta na server, dotazuje se prostřednictvím metody GET protokolu HTTP
mapový server jde o zvláštní případ služby, která zpřístupňuje klientům geografická data ve formě vrstev (layer)
request ve WMS je to požadavek ze strany klienta prostřednictvím query dotazu obsaženého v URL, který vykoná určitou operaci
georeferencování vztažení objektu k referenčnímu souřadnicovému systému
entita abstraktní nebo konkrétní objekt, o kterém je uložena informace v bázi dat
objekt entita s jednoznačně definovanou hranicí a identitou, která zapouzdřuje stav a chování [ISO/TS 19103]
tag je to synonymum pro slovo značka, používá se ve spojitosti s metajazykem XML a jeho aplikacemi, tag je nositelem informace
mapová kompozice jedná se o výsledek spojení několika vrstev (map) v jednu mapu (např. polohopis, výškopis, popis)
Zkratky
AJAX Asynchronous Javascript And XML
CGI Common Gateway Interface
CRS Coordinate Reference System
CSS Cascading Style Sheets
DHTML Dynamic HTML
DOM Document Object Model
DTD Document Type Definition
EPSG European Petroleum Survey Group
GIF Graphics Interchange Format
GIS Geographic Information System
GML Geography Markup Language
HTML HyperText Markup Language
HTTP Hyper Text Transfer Protocol
JPEG Joint Photographic Experts Group
KML Keyhole Markup Language
LAMP Linux, Apache, MySQL, PHP
MathMLMathematical Markup Language
MIME Multipurpose Internet Mail Extensions
OGC Open Geospatial Consortium
PHP Hypertext Preprocessor
PNG Portable Network Graphics
SGML Standard Generalized Markup Language
SVG Scalable Vector Graphics
UDDI Universal Discovery Description and Integration
URI Uniform Resource Identifier
URL Uniform Resource Locator
VML Vector Markup Language
W3C World Wide Web Consortium
WCS Web Coverage Service
WFS Web Feature Service
WGS World Geodetic System
WMS Web Map Service
WSDL Web Services Description
XHTML Extensible HyperText Markup Language
XML eXtensible Markup Language
XSD XML Schema Definition
XSL eXtensible Stylesheet Language
Význam typografického značení
Kurívoujsou vyznačeny poznámky
Tučnépísmo slouží ke zvýraznění důležitého textu
Podtrženépísmo označuje internetový odkaz vyjma literatury a textu označeného Courier (následující značení)
Courierpísmo označuje text výpisu souboru (pokud je v ohraničeném boxu vyjma přílohy), nebo ukázkou kódu v libovolném jazyku (XML, PHP, URL, CSS, aj.)
[1]číslo v hranatých závorkách odkazuje na použitý pramen (viz. Kapitola Literatura)

Kapitola 1

Web Map Service

S rozvojem geografických informačních systému (GIS) bylo zapotřebí vyvinout standardy, jenž by tyto složité systémy byly schopny společně využít. Další snahou bylo zamezit problému s nepřenositelností a uzavřeností formátů pro ukládání GIS dat. Dříve si každá GIS softwarová firma vyvinula vlastní formát, který byl často uzavřený (nepřístupný pro ostatní firmy).

Tuto situaci se snaží vyřešit Open Geospatial Consortium (OGC) [7] , které se dříve jmenovalo Open GIS Consortium. Skládá se z mnoha členů GIS komunity (tvůrců softwaru, předních vědců, atd.). Jeho cílem je sjednotit pomocí mezinárodní norem formáty pro různé typy dat pro GIS pro jejich zjednodušené předávání na národních i mezinárodní úrovni při používání nestejných softwarů. Jeho vytvořeným standardem je právě Web Map Service (WMS) [59] . Příkladem toho, že WMS je jeden z nejpopulárnějších standardů vyvinutých OGC je tabulka č. 1.1.

Tabulka 1.1 - Počet výsledků hledání výrazů ve webových vyhledávačích ke dni 3. 6. 2007
VýrazVyhledávač
www.google.comwww.seznam.cz
web map service 1 010 000 000 287 627
"web map service" 120 000 267 027
wms 6 510 000 7 309

Poznámka: výraz v uvozovkách znamená vyhledání celého sousloví

1.1 Úvod do WMS

Web Map Service je to webová mapová služba, která byla vytvořena z důvodu umožnění sdílení dat GIS v distribuovaném prostředí Internetu. Jedná se o nástroj nejen pro GIS systémy, který zpřístupňuje informace ve formě map (rastrů). Výsledkem požadavku např. GIS softwaru na WMS server jsou primárně obrazová data v nejrůznějších formátech (JPEG, TIFF, PNG, aj.), které zobrazují tematické geografické informace (tematickou mapu - vrstvu). Tato obrazová data mohou být výsledkem překrytu více vrstev (mapová kompozice). To, že je georeferencován (vztažen k souřadnicovému systému), nám poté umožní jeho správnou prezentaci. Georeferencování 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) v tomto systému, jenž obaluje obrazová data výsledku.

1.2 Historie vývoje WMS

První oficiální dokument popisu WMS verze 1.0.0 vydalo OGC dne 19. května 2000. V současné době je nejrozšířenější používání verze 1.1.1 z roku 2002. Přehled vývojových verzí uvádí tabulka č. 1.2. Protože OGC je jen tvůrcem, správcem a inovátorem tohoto standardu, tak není organizací, jenž by ho prohlásila za normu. Jako mezinárodní norma byl WMS přijat úřadem International Organization for Standardization (ISO) pod označením ISO 19128 Geographic Information: Web Map Service v roce 2005.

Tabulka 1.2 - Přehled vývojových verzí WMS
Verze Platné od Referenční dokument Editor dokumentu Typ dokumentu
1.0.0 2000-04-19 OGC 00-028 Allan Doyle D-IS
1.1.0 2001-06-21 OGC 01-047r2 Jeff de La Beaujardiére D-IS
1.1.1 2002-01-16 OGC 01-068r3 Jeff de La Beaujardiére D-IS
1.3.0 2004-01-20 OGC 03-109r1 Jeff de La Beaujardiére D-RP

Poznámka: data zjištěné z oficiálního webového portálu OGC [7]
                Druhy typu dokumentů:
                D-RP - Deprecated Recommendation Paper (neschválené doporučení)
                D-IS - Deprecated Implementation Specification (neschválené provedení specifikace)

1.3 Princip WMS

Základním principem WMS jsou vzájemné interakce, a to stroj-stroj a stroj-člověk. V nejvyšším vrcholu této komunikace je mapový server. Pokud podporuje WMS, můžeme hovořit o WMS serveru. V jeho úložišti jsou uskladněny georeferencovaná obrazová data (GeoTIFF), v nastavení jsou popsány možnosti WMS serveru a v databázi jsou uloženy atributové informace o geografických objektech (objekty u nichž je známa poloha v souřadnicovém referenčním systému a déle k nim existují atributy). Nejčastěji se pro označení souřadnicového referenčního systému (CRS - Coordinate Reference Systém) využívá dataset EPSG [2] (podrobněji je popsán v příloze E).

Klient je potom software, který komunikuje se serverem za účelem získání informací. K této komunikaci využívá Hyper Text Transfer Protocol (HTTP), resp. jeho metody dotazů, jimiž jsou GET a POST (více v kapitole 2.2.1 a 2.2.2). Klient si poté zpracuje informace, které mu server zpřístupnil.

Tyto informace pomocí definovaného uživatelského rozhraní zpřístupní uživateli. Jedná se o interakci člověk-stroj (resp. uživatel-klient) názornější vysvětlení naznačuje obrázek 1.

Princip interakce WMS (člověk - stroj - stroj)
Obrázek 1 - Princip interakce WMS (člověk - stroj - stroj)

1.4 Klady a zápory webové mapové služby

Webová mapová služba (WMS) se dá popsat z hledisek jejich kladných a záporných vlastností [19] jak pro uživatele, klienta, apod.

Klady:
Princip tzv. kaskádování WMS serverů
Obrázek 2 - Princip tzv. kaskádování WMS serverů
Zápory:

1.5 Obdobné služby

Webová mapová služba není jediná služba, která prostřednictvím internetu umožňuje přístup ke geografickým datům (mapovým produktům). OGC spravuje i další obdobné formáty. Jsou jimi například Web Feature Service (WFS), Web Coverage Service (WCS), aj. Každá z těchto služeb je určena ke specifickému účelu šíření prostorových dat.

Je-li WMS určeno k šíření mapových produktů prostřednictvím obrazových dat ve standardních formátech jako jsou např. JPEG, PNG, BMP, TIFF aj., tak potom ostatní služby budou využívat jiné formáty k popisu geografických dat.

Služba Web Feature Service by ve volném překladu znamenala webová hlavní služba. Správcem tohoto formátu je opět OGC. Hlavní výhodou této služby je to, že nám vrátí neobrazová vektorová geografická data, jež narozdíl od WMS mají své přednosti. Po jejich načtení můžeme data upravovat a analyzovat. K šíření vektorových dat se využívá aplikace XML, a to formát Geography Markup Language (GML) [6] .

1.6 Softwarové zajištění

Pod pojmem webová služba rozumíme vzájemnou interakci stroj - stroj. Jedná se o dva stroje (PC, PDA, mobilní telefon, aj.), které nezávisle na svém hardwaru umožňují vzájemnou komunikaci, prostřednictvím určitého standardizovaného protokolu. Takovým příkladem může být protokol HTTP, který je nezávislý na hardware. Webová mapová služba je potom specifickou aplikací interakce stroj - stroj. Člověk přistupuje k datům, jež jsou poskytovány pomocí WMS v interakci člověk - stroj pomocí klienta. Dle náročnosti lze tyto klienty rozdělit na dvě kategorie, a to tenký a tlustý klient.

1.6.1 Tenký klient

Jedná se o nejjednodušší typ klienta. Jde o princip, kdy se prakticky vše zpracovává na straně serveru. Aplikace na straně klienta je omezena pouze možnostmi webového rozhraní (nejčastější případ), které se stará o zobrazování dat spravovaných serverem. Nevýhodou tohoto rozhraní je potom jednostranná zátěž serveru, čímž se snižuje odezva serveru. Nedá se tudíž ovlivnit výkonem hardwaru na straně klienta. Jeden z největších záporů se potom nalézá ve velké paletě uživatelských rozhraní (webové prohlížeče s jejich pluginy), které mohou špatně interpretovat prostředky klienta, popřípadně ho nemusí podporovat vůbec. Nespornou výhodou tenkého klienta je snadný přístup bez ohledu na hardware a operační systém.

Tabulka 1.3 : Přehled nejvýznamnějších tenkých WMS klientů (web aplikací)
ID Význam Firma / Organizace Produkt Web (URL)
1 ČR HS RS Prohlížeč WMS http://www.bnhelp.cz/mapserv/php/mapserv3.php?project=wmsview&
2 svět Intergraph OGC Viewer http://www.wmsviewer.com
3 svět ESRI Arc Explorer http://www.geographynetwork.com/arcexplorer
4 svět INSPIRE EU -Geoportal http://eu-geoportal.jrc.it/arcexplorer

Poznámka: informace zjištěné vlastním průzkumem

Tenký klient společnosti HS RS s.r.o.
Obrázek 3 - Tenký klient společnosti HS RS s.r.o.

1.6.2 Tlustý klient

Ze znalosti pojmu tenký klient je snadné odvodit, co tlustý klient představuje. Jedná se především o aplikaci, jež běží na straně hardwaru klienta. Tato aplikace je omezena možnostmi operačního systému a použitým hardwarem. Vlastní klient pracuje na straně uživatele. Komunikuje s mapovým serverem a získává tak z něho potřebná data. Tento program může pracovat ve dvou režimech, buď online (možnost získávat nová data), nebo offline (pracuje jen s načtenými daty ze stavu online). Velikou a nespornou nevýhodou tohoto klienta je jeho závislost na operačním systému. Tento problém vyřeší jen vytvoření dalších verzí pro jiné operační systémy.

Příkladem tlustých klientů je ArcGis 8.3 (s podporou WMS), Kokeš 7.60, Google Earth, Gaia, a spousta dalších.

Tlustý klient Gaia 3.0
Obrázek 4 - Tlustý klient Gaia 3.0

1.6.3 Mapový server

Mapový server je software pracující na architektuře klient-server (stroj-stroj). Obsluhuje a zpracovává geografická data v nejrůznějších formátech. S určitou nadsázkou by se dalo říci, že se jedná o geografický informační systém, který je ovládán pouze pomocí definovaných parametrů (není interaktivní). Spolupracuje s některým z mnoha typů webových serverů (např. Apache), který jim předá potřebné parametry z webového formuláře. Ty jsou zpracovány a zpět je vrácen buď soubor s mapou anebo výsledek dotazu.

Existuje nepřeberné množství mapových serverů. Jsou jimi jak komerční (např. od firmy ESRI) a servery jsou uvolněné pod svobodnou licencí. Mezi jeden z nejznámějších se dá zařadit MapServer [60] univerzity v Minnesotě v licenci GNU GPL.

Tak jako HTTP server např. Apache podporuje nejrůznější moduly PHP, IMAP, aj., tak i mapový server podporuje nadstavby, jimiž je například podpora WMS někdy označovaná jako WMS server.

Princip fungování mapového serveru
Obrázek 5 - Princip fungování mapového serveru, zdroj [47]

1.7 A co budoucnost?

Jak už bylo zmíněno, nejrozšířenější verzí je 1.1.1. Úspěch této verze souvisí hlavně s implementací WMS standardu do nejdůležitějších mapových serverů, jimiž je např. Mapserver z Univerzity Minesotta. Tato verze narozdíl od svých předchůdců umožňuje šířit i nejrůznější metadata o mapovém serveru. Verze 1.3.0, jenž je zatím neschváleným doporučením, není doposud (ke dni 28. 4. 2007) podporována žádným serverem, i když jsou náznaky, že v průběhu měsíce června roku 2007 bude již implementována do Mapserveru univerzity v Minesottě.

Snahou vývojářů standardu WMS je i rozšiřovat možnosti webové mapové služby a přizpůsobovat ji nejnovějším informačním formátům (XML, XSD, URL, aj.). Takovým příkladem může být dokument OGC 02-017r1 konsorcia OGC s názvem Web Map Service Implementation Specification Part 2: XML for Requests using HTTP POST. Jeho snahou je rozšířit zaostávající podporu metody dotazu POST protokolu HTTP v XML souborech, prostřednictvím nichž komunikují server a klient (tenký nebo tlustý).

Ještě zajímavějším dokumentem je OGC 06-045r1 WMS - Proposed Animation Service Extension. Tento zkoumá možnosti rozšíření WMS o animované sekvence závislé na prostoru a času. Dokument je zpracován, aby vyhověl verzi 1.1.1. Každá vrstva může mít dle specifikace WMS 1.1.1 atributy:

<Dimension name="time" units="ISO8601"/>
<Extent name="time" default="09-25-2000">09-15-1973,05-22-1983,09-25-2000</Extent>

Tyto atributy dané vrstvy vymezují odlišné verze z hlediska času. V tomto případě existují v dané vrstvě tři její časové varianty.

Tabulka 1.4 - Přehled dokumentů týkajících se vývoje WMS
Verze Platné od Referenční dokument Editor Typ dokumentu Titul
0.1.0 2005-04-22 OGC 04-050r1 Philippe Duschene & Jerome Sonnet DP WMS Change Request: Support for WSDL & SOAP
0.0.3 2002-04-24 OGC 02-017r1 Jeff de La Beaujardiére DP WMS Part 2: XML for Requests using HTTP Post
0.9.0 2005-07-24 OGC 06-045r1 Eric LaMar DP WMS - Proposed Animation Service Extension

Poznámka: data zjištěné z oficiálního webového portálu OGC [7]
      Druhy typu dokumentů:
      DP - Discussion Paper (diskusní dokument)

1.8 Typy dotazů na WMS server

Klient (tenký popř. tlustý) komunikuje s mapovým serverem prostřednictvím třech základních dotazů (request), které jsou součástí query obsažené v URL. Aby si vzájemně rozuměli, byly OGC vytvořeny tři hlavní typy dotazů na mapový server. Jedná se o dotazy GetCapabilities, GetFeatureInfo a GetMap. Názvy těchto dotazů jsou platné až od verze WMS 1.1.0. V důsledku vývoje verzí webových mapových služeb se dané funkce nejmenovaly vždy stejně. Jejich vývojové názvy uvádí tabulka 1.5.

Tabulka 1.5 - Přehled vývoje názvů a druhů dotazů na WMS server s porovnáním k verzi 1.1.1
Verze GetMap GetCapabilities GetFeatureInfo DescribeLayer Poznámka
1.0.0 Map Capabilities FeatureInfo -
1.0.7 Map Capabilities FeatureInfo DescribeLayer 1)
1.1.0 GetMap GetCapabilities GetFeatureInfo DescribeLayer
1.1.1 GetMap GetCapabilities GetFeatureInfo DescribeLayer 2)
1.1.0 GetMap GetCapabilities GetFeatureInfo - 3)

Poznámka:
      1) dále existuje dotaz Coverage, který se vyskytuje jen v této verzi
      2) dále existují dotazy GetLegendGraphic, GetStyles, PutStyles, které se vyskytují jen v této verzi
      3) dále existuje dotaz _ExtendedOperation, který se vyskytuje jen v této verzi

Vlastní specifikace služby a její aplikace do praxe můžou být rozdílné věci, což dokazuje předchozí tabulka. U některých mapových serverů byly přidány navíc ještě další typy dotazů, které již nebyly vytvořeny OGC. Tudíž nemusí být podporovány všemi mapovými servery na rozdíl od třech hlavních.

1.8.1 GetMap

Tento typ dotazu lze považovat za hlavní (primární), a to z toho důvodu, že klientovi zpřístupní mapu ve formě obrazových dat v určitém formátu. Query (parametry dotazu obsaženého v URL) URL musí obsahovat parametr, REQUEST=GetMap

Specifikace (záleží dle použité verze WMS) vyžaduje ještě další povinné parametry, které mapovému serveru sdělí podrobnější informace o části mapy jenž má zpřístupnit. Jsou jimi například souřadnicový systém, formát obrazových dat, název vrstev a stylů, souřadnicový box, aj.

Tabulka 1.6 - Příklad dotazu GetMap
http://b-maps.com/map.cgi?VERSION=1.3.0&REQUEST=GetMap&CRS=CRS:84& BBOX=-97.105,24.913,-78.794,36.358&WIDTH=560&HEIGHT=350& LAYERS=BUILTUPA_1M,COASTL_1M,POLBNDL_1M&STYLES=0XFF8080,0X101040,BLACK& FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE

Výsledek dotazu GetMap na server
Obrázek 6 - Výsledek dotazu GetMap na server

1.8.2 GetCapabilities

Pokud daný klient nezná možnosti a vlastnosti spravovaných dat, což se skoro ve všech případech děje, musí tyto možnosti zjistit. Proto klient při první komunikaci se serverem sestaví GetCapabilities dotaz. Query musí obsahovat parametr REQUEST=GetCapabilities.

Specifikace vyžaduje ještě jeden povinný parametr SERVICE=WMS.

Tabulka 1.7 - Příklad dotazu GetCapabilities
http://b-maps.com/map.cgi?SERVICE=WMS&REQUEST=GetCapabilities

Po platném sestavení dotazu je zpřístupněn XML soubor popisující danou službu. Tato data jsou metadaty mapového serveru, což znamená, že obsahují veškeré potřebné informace pro komunikaci se služnou.

Tabulka 1.8 - Ukázka XML souboru dotazu GetCapabilities
<?xml version="1.0" encoding="UTF-8"?>
<WMT_MS_Capabilities version="1.1.0">
 <Service>
  <Name>OGC:WMS</Name>
  <Title>Web Map Service metropolitky</Title>
  <Abstract>ArcIMS 9.1.0 metropolitky Web Map Service</Abstract>
  <KeywordList>
    <Keyword>ArcIMS</Keyword>
  </KeywordList>
...

1.8.3 GetFeatureInfo

Tento typ dotazu vrací klientovi XML soubor s atributy daného prvku na mapě o určitých souřadnicích. Query URL musí obsahovat parametr REQUEST= GetFeatureInfo.

Specifikace (záleží dle použité verze WMS) vyžaduje ještě další povinné parametry, které mapovému serveru řeknou podrobnější informace o daném dotazu.

Tabulka 1.9 - Příklad dotazu GetFeatureInfo
http://b-maps.com/map.cgi?SERVICE=WMS&REQUEST=GetFeatureInfo&VERSION=1.1.1 &BBOX=33861.26000000001,717605.5403411514,330846.09, 1019656.2096588486 &WIDTH=489&HEIGHT=406&INFO_FORMAT=text/xml&QUERY_LAYERS=cntry, states&X=320&Y=154&FEATURE_COUNT=1

Tabulka 1.10 - Ukázka XML souboru dotazu GetFeatureInfo
 <FeatureInfoResponse>
  <FIELDS>
   <FIELD name="GISDATA_TO" value="21952068" />
   <FIELD name="GISDATA__1" value="28574.65" />
   <FIELD name="GISDATA__2" value="204" />
   <FIELD name="GISDATA__3" value="576" />
   <FIELD name="GISDATA__4" value="176" />
   <FIELD name="GISDATA__5" value="MEDFORD" />
   <FIELD name="GISDATA__6" value="25017" />
   <FIELD name="GISDATA__7" value="400" />
   <FIELD name="GISDATA__8" value="39835" />
   <FIELD name="GISDATA__9" value="57343" />
   <FIELD name="GISDATA_10" value="57407" />
   <FIELD name="GISDATA_11" value="0" />
   <FIELD name="GISDATA_12" value="64" />
   <FIELD name="GISDATA_13" value="3" />
   <FIELD name="GISDATA_14" value="203" />
   <FIELD name="#SHAPE#" value="[Geometry]" />
   <FIELD name="#ID#" value="1" />
  </FIELDS>
 </FeatureInfoResponse>

1.8.4 Chybný dotaz (query)

Za předpokladu znalosti URL platného WMS serveru můžou nastat případy, kdy dotaz sestavený klientem je pro server chybný (nesrozumitelný), nebo neúplný. V takových případech od verze 1.1.0 vrací XML soubor s popisem dané chyby (viz. tabulka 1.12). Příklad chybného dotazu uvádí tabulka 1.11.

Tabulka 1.11 - Příklad chybného dotazu GetFeatureInfo
http://b-maps.com/map.cgi?SERVICE=WMS&REQUEST=GetFeatureInfo

Tabulka 1.12 - příklad XML vráceného po chybném dotazu
<?xml version='1.0' encoding="windows-1250" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengeospatial.net/wms/1.1.1/exception_1_1_1.dtd">
 <ServiceExceptionReport version="1.1.1">
  <ServiceException>
    msWMSDispatch(): WMS server error. Incomplete WMS request:
    VERSION parameter missing
  </ServiceException>
 </ServiceExceptionReport>

Kapitola 2

XML soubor dotazu GetCapabilities

WMS je jako například RSS, XHTML nebo SVG aplikací XML, a to především jeho dotazy GetCapabilities a GetFeatureInfo. To znamená, že tuto aplikaci někdo vymyslel a dále vytvořil definici typu dokumentu (DTD) nebo XML schéma, aby zajistil jednotnost používání tohoto formátu. Tvůrcem, správcem a inovátorem je OGC konsorcium. Tak jako každý nápad v průběhu času, tak i tento standard prošel dlouhým vývojem, což potvrzuje počet jeho vývojových verzí.

Tento soubor je jakýmsi metadatovým souborem popisující veškeré možnosti daného serveru.

2.1 Metadata

Název metadata pochází ze spojení z řeckého meta = mezi a latinského data = to, co je dáno. Jsou to strukturovaná data o datech.

Takovým praktickým příkladem může být fotografie pořízená digitálním fotoaparátem. Přístroj automaticky připojí skryté informace do souboru s fotografií. Tato data jsou ukládána v tzv. formátu EXIF. Jsou to například informace o typu fotoaparátu, ohniskové vzdálenosti, cloně, datu a času pořízení, expozičním času apod.

S jakýmkoliv formátem metadat se tudíž setkáváme běžně, aniž si to uvědomujeme. V knihovnách je příkladem metadat katalogizační záznam, až již v klasické lístkové podobě, nebo ve formě elektronického záznamu v automatizovaném knihovním systému.

V důsledku velkého rozvoje internetu z hlediska používání pro ukládání a zpřístupňování nejrůznějších informací nastává problém s jejich vyhledáváním. Tuto situaci usnadňují právě metadata, s jejichž pomocí se hledání a správa informací stává snazší.

Vazba mezi metadatovým záznamem a zdrojem který popisují, může být dvojí:
1) metadatový záznam je uložen samostatně a odděleně od zdroje (např. katalogizační systém záznamů v knihovně)
2) metadata jsou vnořena (embedded) přímo do samotného zdroje (např. pomocí značek u dokumentů v jazyce SGML, HTML apod.)

2.2 Přehled využívaných technologií

2.2.1 URI (Uniform Resource Identifier)

URI je zkratka odvozená z anglického jazyka Uniform Resource Identifier [14] , což v překladu znamená jedinečnou identifikaci zdroje. Skládá se z řetězce znaků, jehož formát se řídí určitými kritérii. Jedná se tudíž o množinu všech druhů adres. Obsahuje dvě složky, a to adresu objektu a schéma. Schémat v poslední době narůstá s rozvojem nových komunikačních protokolů. Jsou jimi například http, ftp, file, mailto a mnoho dalších. Každé toto schéma začíná vždy dvojtečkou a dále následuje vlastní adresa objektu. Forma této adresy je potom závislá na druhu schématu. Příkladem takového URI může být například: http://www.google.com

Do rodiny URI patří i URL (Uniform Resource Locator) a URN (Uniform Resource Name)

Schéma vazeb mezi URI, URL a URN
Obrázek 7 - Schéma vazeb mezi URI, URL a URN

2.2.2 URL (Uniform Resource Locator)

URL, neboli Uniform Resource Locator [14] ve volném překladu znamená jedinečný zdrojový lokátor. Jedná se o podmnožinu URI. Skládá se z řetězce znaků s definovanou strukturou. Slouží k přesné specifikaci umístění zdrojů informací (ve smyslu dokument nebo služba) na internetu.

Příkladem takového URL může být například tato fiktivní internetová adresa: http://gama.fsv.cvut.cz:80/vyuka/tcv10.php?akce=zkousky&sem=letni

1) komunikační protokol:
http (Hyper Text Transfer Protocol)
2) adresa serveru:
gama.fsv.cvut.cz (doména 4. řádu)
3) komunikační port:
80 (pokud se neuvede tak pro HTTP je implicitně 80)
4) adresa dokumentu:
vyuka/tcv10.php (jedná se o relativní interní adresu na serveru v rámci složky určené pro web např. /public_html)
5) dotaz (query)
akce=zkousky&semestr=letni

Začátek dotazu je uvozen znakem "?". V dotazu se vyskytují dva parametry akce, jejíž hodnota je zkousky a semestr s hodnotou letni. Jednotlivé položky dotazu jsou odděleny symbolem "&".

Je možné se setkat v URL i s parametry pro HTTP autorizaci. Autorizace se skládá z uživatelského jména a k němu příslušné heslo. Příkladem může být tato fiktivní adresa http://username:password@gama.fsv.cvut.cz/

2.2.3 XML (EXtensible Markup Language)

EXtensible Markup Language (XML) [13] je jedním z nejdůležitějších metajazyků vyskytujících se ve světě počítačů. Byl vyvinut z metajazyka SGML. Na jeho vytvoření pracovala od roku 1996 pracovní skupina XML (XML Working Group) konsorcia World Wide Web Consortium (W3C).

Jeho výhodou oproti svému předchůdci je to, že přinesl pro programátory a správce informačních systémů dlouho očekávaný výměnný standard. Při jeho vytváření stanovili tvůrci 10 hlavních cílů tohoto metajazyka:

  1. XML by mělo být přímo použitelné na internetu,
  2. XML by mělo být podporováno širokou paletou aplikací,
  3. XML by mělo být kompatibilní s jazykem SGML,
  4. tvorba programů zpracovávající XML by měla být snadná,
  5. počet volitelných částí XML by měl být naprosto minimalizován, v ideálním případě by měl být nulový,
  6. dokumenty XML by měly být pro člověka snadno čitelné, dostatečně jasné,
  7. návrh XML by měl být rychle hotov,
  8. návrh XML by měl být metodický a stručný,
  9. vytváření dokumentů XML by mělo být snadné,
  10. obsažnost značkování není příliš důležitá.

Úspěšnost tohoto metajazyka dokazuje také to, že v poslední době o něm vychází mnoho publikací, existují výukové kurzy, jeho podpora je implementována do nejrůznějších programovacích jazyků a v neposlední řadě existuje nepřeberná řada aplikací. Pro příklad jich pár uvedu:

1) Vector Markup Language (VML)
ukládání vektorové grafiky
2) Mathematical Markup Language (MathML)
formátování matematických vzorců a vědeckých výpočtů na webu
3) Geography Markup Language (GML)
ukládání a výměna geografických informací
4) Extensible Hyper Text Markup Language (XHTML)
vytváření webových stránek HTML, které jsou platnými dokumenty XML
5) Scalable Vector Graphics (SVG)
popisuje dvojrozměrnou vektorovou grafiku
6) RSS
čtení novinek na webových stránkách
7) aj.

Předchozí příklady jsou jen nepatrným výčtem z XML aplikací. Rovněž je zajímavé, jak se XML metajazyk rozšířil do nejrůznějších oborů lidské činnosti. Tyto uvedené aplikace jsou nejenom vyvinuté, ale i dále rozšiřované a poměrně i známé lidem, kteří pracují s PC.

Jak je z předchozího textu o XML patrné, tak každý si může vytvořit jakékoliv vlastní schéma pro určitá data. Pro názorný příklad si představme, že máme vytvořit XML pro ukládání dat PSČ obcí České republiky. Nejdříve si musíme udělat rozbor všech dat, která budeme ukládat. V nejjednodušším případě nás bude zajímat název obce a její PSČ. Potom by takové schéma vypadalo asi takto:

Tabulka 2.1 - Příklad XML aplikace (PSČ seznam) verze 1
<?xml version="1.0" encoding="UTF-8"?>
<PSC_LIST xmlns="http://josef.fsv.cvut.cz/~tuten/xml/xml_psc/1.0">
  <OBEC>
    <NAZEV>Plzeň 3-Jižní Předměstí</NAZEV>
    <PSC>32000</PSC>
  </OBEC>
  <OBEC>
    <NAZEV>Plzeň 4-Východní Předměstí (část)</NAZEV>
    <PSC>30100</PSC>
  </OBEC>
...
</PSC_LIST>

Je přirozené, že jiná osoba, jenž by se takovéto schéma pokusila vytvořit, by k zadanému problému přistoupila jinak. Výsledek by potom mohl vypadat zcela odlišně, například takto:

Tabulka 2.2 - Příklad XML aplikace (PSČ seznam) verze 2
<?xml version="1.0" encoding="ISO-8859-1"?>
<PSC_SEZNAM xmlns="http://www.seznam.cz/xmlschema/psc/1.5">
   <OBEC nazev="Plzeň 3-Jižní Předměstí" psc="32000" />
   <OBEC nazev="Plzeň 4-Východní Předměstí (část)" psc="30100" />
...
</PSC_SEZNAM>

Jedná se o uložení těch samých informací do XML schématu, které je správně strukturované. Problém by nastal v aplikaci, která by byla určena k načítání prvního schématu. V případě pokusu načíst druhé schéma by pak selhala. Proto se u každého XML schéma, jenž má sloužit širší veřejnosti, doporučuje použití jmenného prostoru, který odliší tyto dvě schémata a řekne aplikaci, že nenačítá správné schéma. Tyto dvě definice se mohou lišit v těchto rozdílech:

2.2.4 DTD (Document Type Definition)

U XML dokumentů existuje rozdíl mezi správně strukturovanými dokumenty a platnými dokumenty XML. Správně strukturované dokumenty musí být validní podle specifikace XML. Platné dokumenty jsou takové, které jsou definovány pomocí Document Type Definition (DTD) [28] , nebo XML schématu (XSD). DTD a XSD můžeme chápat jako omezení metajazyka XML na jeho pouhou aplikaci. Díky tomu se může kdykoliv ověřit platnost XML dokumentu. Dále je tím plně popsána struktura dané aplikace XML.

DTD, neboli definice typu dokumentu, má vlastní syntaktická pravidla, jenž je zapotřebí znát. Výhodou je potom dobrá čitelnost struktury XML. Nevýhodou se pak stávají mnohá omezení, která DTD skrývá. Jedná se například o omezení v definici vlastních datových proměnných.

Tabulka 2.3 - Příklad DTD pro aplikaci (PSČ seznam) tabulky 2.1
<!ELEMENT PSC_LIST (OBEC*) >
<!ELEMENT OBEC (NAZEV, PSC)>
<!ELEMENT NAZEV (#PCDATA) >
<!ELEMENT PSC (#PCDATA) >

2.2.5 XSD (XML Schema Definition)

Funkce XML schémat (XSD) [15] [28] je stejná jako u jazyka DTD, ale na rozdíl od něj nemá vlastní syntaktická pravidla. XSD využívá metajazyk XML, který oproti DTD rozšiřuje jeho nožnosti. Jak již bylo zmíněno v předešlém bodě, tak příkladem praktické možnosti je definice vlastního datového typu, např. PSČ.

Tabulka 2.4 - Příklad XSD pro aplikaci (PSČ seznam) tabulky 2.1
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PSC_LIST">
   <xs:complexType>
    <xs:sequence>
     <xs:element name="OBEC">
      <xs:complexType>
       <xs:sequence>
        <xs:element name="NAZEV" type="xs:string"></xs:element>
        <xs:element name="PSC" type="xs:integer"></xs:element>
       </xs:sequence>
      </xs:complexType>
     </xs:element>
    </xs:sequence>
   </xs:complexType>
  </xs:element>
</xs:schema>

2.3 URL pro GetCapabilities dotaz

Protokol HTTP podporuje dvě metody dotazů GET a POST. Podpora metody GET na straně WMS serveru je povinná. Metoda POST nemusí být daným serverem podporována (je volitelná). Dotaz obsažený v URL (metoda GET HTTP) je velice důležitý pro WMS, protože na jehož základu funguje komunikace mezi serverem (rozumí se jím WMS server) a klientem (rozumí se jím software, jenž komunikuje se serverem).

Server musí umožňovat zpracování těchto dotazů. Většinou se lze na internetu setkat s použitím URL dotazů na dynamické webové stánky (PHP, ASP, aj.).

2.3.1 Omezení URL v aplikaci na WMS

Je v celku pochopitelné, že pro WMS musí existovat určité omezení z hlediska URI, resp. URL. OGC specifikace [51] připouští pouze komunikační protokol HTTP. Vlastní adresa služby musí být validní URL.

http://host[:port]/path?{name[=value]&}

Poznámka:
            [] hodnota v této závorce se může vyskytovat 0 nebo 1 krát
            {} hodnota v této závorce se může vyskytovat 0 nebo N krát

Dotazy na server u všech třech hlavních WMS funkcí probíhají prostřednictvím metody GET protokolu HTTP. Existuje omezení pro používání libovolných znaků, protože některé jsou rezervovány pro speciální účel (viz. tabulka 2.5).

Tabulka 2.5 - Rezervované znaky v WMS URL dotazu verze 1.1.1
Znak Význam znaku (použití)
? uvozuje začátek řetězce pro dotaz
& odděluje parametry dotazu (je mezi nimi)
= odděluje název a hodnoty parametru (je mezi nimi)
, odděluje hodnoty jmenovaných parametrů (BBOX, LAYERS a STYLES) pro GetMap dotaz
/ odděluje typy MIME a podtypy ve formátu hodnoty parametru
: odděluje jmenný prostor a identifikátor CRS (Coordinate Reference Systém) {dříve označován jako SRS více v [51]}

2.3.2 Tvar URL pro získání XML souboru dotazu GetCapabilities

Pro přístup k určitému WMS serveru je potřeba znát jeho URL, například: http://gis.kr-vysocina.cz/wmsconnector/com.esri.wms.Esrimap. Při znalosti specifikace WMS je možné sestavit kompletní adresu pro dotaz GetCapabilities.

Tabulka 2.6 - Parametry URL dotazu GetCapabilities verze 1.1.1
Request parametr Povinný / Volitelný Vlastnosti
VERSION=version V Verze dotazu
SERVICE=WMS P Typ služby
REQUEST=GetCapabilities P Typ dotazuy
UPDATESEQUENCE=string V Posloupnost čísel a znaků pro cache kontroluy

Za tuto adresu je zapotřebí přidat dva povinné parametry, a to REQUEST=GetCapabilities a SERVICE=WMS výsledné URL vypadá poté následovně http://gis.kr-vysocina.cz/wmsconnector/com.esri.wms.Esrimap?SERVICE=WMS&REQUEST=GetCapabilities

V tuto chvíli mohou nastat dvě možnosti. Mapový server klientovi zpřístupní XML soubor nebo k tomu vůbec nedojde. Existuje-li soubor a zároveň bude buď plně validní XML dotazu GetCapabilities (pro libovolnou WMS verzi), jedná se skutečně o URL k WMS serveru. Jedná-li se o XML soubor Exception, nastala chyba v požadavku na server. Server tudíž zpřístupní velice jednoduché XML se zprávou o nastalé chybě.

2.3.3 Postup pro získání XML souboru dotazu GetCapabilities

Jak už bylo uvedeno dříve, tak přístup k mapové službě vyžaduje znalost URL mapového serveru. Pokud máme danou adresu, můžeme si ověřit zda je náš předpoklad správný. Z tabulky 2.6 vyplývá, že pro tento dotaz jsou povinné jen dva parametry, a to v celém průběhu vývoje všech verzích kromě jedné výjimky. Jedná se o povinné parametry SERVICE=WMS a REQUEST=GetCapabilities, ale v první veřejně publikované verzi 1.0.0 parametr request vypadal takto REQUEST=Capabilities.

Stanovení specifikace a její aplikace jsou dvě rozdílné věci, což dokazují některé mapové servery, jež vyžadují ještě jeden dle OGC nepovinný parametr. A to VERSION=version.

Iterační postup pro stanovení URL na GetCapabilities dotaz by mohl na následujícím fiktivním příkladu vypadat takto:
http://www.mapyCR.cz/wms/isapi.dll?SERVICE=WMS&SERVICENAME=doprava&REQUEST=GetCapabilities

Vlastní postup:
1) http://www.mapyCR.cz/wms/isapi.dll?SERVICE=WMS&amp;SERVICENAME=doprava&amp;REQUEST=GetCapabilities
kontrola popř. doplnění SERVICE=WMS a REQUEST=GetCapabilities
2) http://www.mapyCR.cz/wms/isapi.dll?SERVICE=WMS&SERVICENAME=doprava&REQUEST=GetCapabilities&VERSION=1.1.1
převzat předchozí případ a doplnit URL o VERSION=1.1.1 tento bod provádět se záměnou hodnoty parametru version (1.1.0, 1.0.7, 1.0.0, 1.3.0)
3) http://www.mapyCR.cz/wms/isapi.dll?SERVICE=WMS&SERVICENAME=doprava&REQUEST=Capabilities
převzít prvotní URL a zkontrolovat, popř. doplnit SERVICE=WMS, zkontrolovat a pokud se vyskytuje, umazat parametr REQUEST=GetCapabilities, přidat REQUEST=Capabilities
4) http://www.mapyCR.cz/wms/isapi.dll?SERVICE=WMS&SERVICENAME=doprava&REQUEST=Capabilities&VERSION=1.0.0
převzat předchozí případ a doplnit URL o VERSION=1.0.0, tento bod provádět se záměnou hodnoty parametru version (1.0.7, 1.1.0, 1.1.1, 1.3.0)
5) http://www.mapyCR.cz/wms/isapi.dll?SERVICE=WMS&SERVICENAME=doprava&REQUEST=Capabilities&VERSION=1.3.0
poslední možný pokus o sestavení URL dotazu GetCapabilities

Předpokladem tohoto postupu je to, že pokud je předáno URL s query parametry, tak se tyto parametry považují prvotně za správné, teprve až v dalším postupu se začínají považovat za špatné. Pokud by dotaz obsažený v query neexistoval, tak by byl sestavován stejným postupem.

Správné URL by bylo to, které v průběhu předchozího postupu získalo přístup k XML souboru dotazu GetCapabilities (viz. tabulka 1.8).

2.4 Rozbor XML souboru dotazu GetCapabilities

Struktura tohoto XML souboru má určitá pravidla, jimiž se musí mapový server řídit. Popis struktury XML souboru metadat je uveden ve formátech Definice typu dokumentu (DTD) a XML schéma (XSD) na webové stránce [12]
http://schemas.opengeospatial.net/wms/

Tabulka 2.7 - Přehled vývojových verzí XML souboru dotazu GetCapabilities z hlediska existence DTD nebo XSD
Verze Popis serveru Popis výjimky Poznámka
DTD XSD vzor (XML) DTD XSD vzor (XML)
1.0.0 X - X - - - -
1.0.7 X - X - - - -
1.1.0 X - X X - X -
1.1.1 X - X X - X 1)
1.3.0 - X X - X X -

Poznámka: 1) daná verze má více souborů viz. tabulka 2.8

Tabulka 2.8 - Přehled obsahu webového adresáře http://schemas.opengeospatial.net/wms/
Verze Soubory obsažené ve složce
1.0.0 capabilities_1_0_0.dtd
capabilities_1_0_0.xml
1.0.7 capabilities_1_0_7.dtd
capabilities_1_0_7.xml
1.1.0 capabilities_1_1_0.dtd
capabilities_1_1_0.xml
exception_1_1_0.dtd
exception_1_1_0.xml
1.1.1 OGC-exception.xsd
WMS_DescribeLayerResponse.dtd
WMS_MS_Capabilities.dtd
WMS_exception_1_1_1.dtd
capabilities_1_1_1.dtd
capabilities_1_1_1.xml
exception_1_1_1.dtd
exception_1_1_1.xml
1.3.0 capabilities_1_3_0.xsd
capabilities_1_3_0.xml
exception_1_3_0.xsd
exception_1_3_0.xml
ReadMe.txt

Rozdíl mezi těmito soubory (především DTD) je v tom, že se měnily tyto hodnoty:

Tabulka 2.9 - Přehled vývoje názvů úvodních tagu XML souboru dotazu GetCapabilities
Verze Úvodní tag
1.0.0, 1.0.7, 1.1.0, 1.1.1 WMT_MS_Capabilities
1.3.0 WMS_Capabilities

2.4.1 Obsah XML souboru dotazu GetCapabilities

Tento metadatový soubor obsahuje překvapivě hodně informací, ke kterým běžný uživatel nemá přístup.

A) údaje o serveru:
Jedná se o informace, jež podrobně charakterizují celý mapový server. Data jsou vnořena do těchto tagu <WMT_MS_Capabilities>, <Service>.
- základní informace:
název, nadpis, abstrakt, klíčová slova charakterizující server, URL serveru
- kontaktní informace:
odpovědná organizace, osoba a její pozice
- adresa správce:
typ adresy, adresa, město, stát, provincie nebo část státu, PSČ, telefon, email
- ostatní informace:
omezení přístupu, zpoplatnění, omezení počtu vrstev, maximální rozměr výstupu obrazových dat (v pixelech)
B) údaje o dotazech na server:
Zde jsou vyjmenovány veškeré typy dotazů, jež je možno provádět na daný server. U těchto typů jsou dále určeny metody HTTP dotazů (GET, POST) a formáty datových výsledků, které server vrátí po příslušném dotazu. Data jsou vnořena do těchto tagu <WMT_MS_Capabilities>, < Capability>, < Request>.
- dle OGC:
GetMap, GetCapabilities, GetFeatureInfo
- ostatní:
DescribeLayer, aj.
C) formát zprávy o výjimce:
V určitých případech může nastat případ, kdy server nepochopí daný dotaz nebo nastane jiná interní chyba. Zprávu o této chybě poskytuje klientovi ve formátu, jenž je zde jmenován. Data jsou vnořena do těchto tagu < WMT_MS_Capabilities>, <Exception>.
XML soubor, obrazová prezentace, popř. jiné formáty.
D) údaje o dostupných vrstvách:
Tato část souboru metadat serveru je pro uživatele asi nejzajímavější. Obsahuje seznam všech poskytovaných vrstev a jejich stylů. Vrstvu ve WMS si lze představit jako tematickou mapu. Příkladem může být vrstva ortofotomapy. Data jsou vnořena do těchto tagu <WMT_MS_Capabilities>, <Layer>.
<Layer>:
Úvodní tag layer je jen jeden. Následují informace, jež jsou společné pro všechny vrstvy. Ostatní vrstvy jsou vnořovány do úvodního tagu layer a do jiných už vnořených tagu layer. Některé atributy těchto vnořených vrstev dědí informace, jež jsou uvedeny v nadřazené vrstvě, pokud tato informace není přepsána (tabulka 2.11).
<Name>:
Jméno vrstvy (souvislý řetězec) se používá jako součást dotazu GetMap.
<Title>:
Titulek vrstvy je popis vrstvy (pro člověka čitelný).
<Abstract>:
Jedná se o popis vlastností vrstvy (mapy).
<KeywordList>:
Obsahuje klíčová slova popisující danou vrstvu. Má především význam pro vyhledávání.
<Style>:
Zde se nachází popis stylů vrstvy. (více popsáno v bodě E)
<SRS>:
Spatial Reference System (SRS) nově označován jako Coordinate Reference System (CRS) slouží pro výčet souřadnicových systemů, která daná vrstva podporuje. Uvádí se ve formátu Namespace:ID. Nejčastěji se využívá dataset EPSG organizace The International Association of Oil & Gas producers (OGP). Podrobněji je EPSG popsáno v příloze E).
<LatLonBoundingBox>:
Území, které zobrazuje určitá vrstva, je vymezeno (omezeno) ohraničujícím obdélníkem (boxem) v souřadnicovém v systému WGS1984 lat/lon dané kódem EPSG:4326. Tento obdélník je jednoznačně určen parametry minx, maxx v souřadnicích zeměpisné délky (longitude) a miny, maxy v souřadnicích zeměpisné šířky (latitude) v uvedených desetinných stupních.
<BoundingBox>:
Tento tag je analogií k <LatLonBoundingBox>. Je zde stejným způsobem vymezeno území zobrazené danou vrstvou, ale pro libovolný souřadnicový system (CRS), který je uveden v <SRS>.
<Dimension>:
Jedná se o definici dimenze a její jednotek, např. dimenze time a jednotka ISO8601.
<Extent>:
Využívá definované dimenze vrstvy <Dimension> a vymezuje tuto dimenzi na jeden nebo více domén např. dimenze time a doména 2000-08-22.
<Attribution>:
Odasahuje popis atributů a jejich URL odkaz.
<AuthorityURL>:
Odkazuje na URL správce (vlastníka) dat dané vrstvy a vymezuje jejich formát. Protože vlastníků může být více, využívá tag <Identifier> pro vazbu mezi tímto tagem.
<Identifier>:
Jedná se o štítek pro pro definování jména (name) využívané potom v <AuthorityURL>.
<MetadataURL>:
Odkazuje na URL obsahující metadata dané vrstvy a vymezuje jejich formát.
<DataURL>:
Odkazuje na URL obsahující data dané vrstvy a vymezuje jejich formát. Metadata těchto dat popisuje tag <MetadataURL>.
<FeatureListURL>:
Odkazuje na URL obsahující vlastnosti dané vrstvy a vymezuje jejich formát.
<ScaleHint>:
Protože vrstvu lze chápat jako mapu zobrazující dané území s určitou podrobností (stupněm generalizace), tak je vcelku pochopitelné, že pro vrstvu např. silniční mapy bude existovat měřítková mez pro její zobrazení. V malém měřítku by tato mapa byla nečitelná. Tomu se lze vyhnout poskytnutím této mapy s různými stupni generalizace s vymezením měřítkové meze pro zobrazení.
E) údaje o dostupných stylech vrstvy:
Styl je poté jakási drobná změna v tematické vrstvě. Může jít například o změnu barvy elementů, u dat získaných pomocí DPZ může jít o zobrazování různých části barevného spektra (panchromatické barvy). Data jsou vnořena do těchto tagu <WMT_MS_Capabilities>, < Layer>.
<Name>:
Jméno vrstvy (souvislý řetězec) používá se jako součást dotazu GetMap.
<Title>:
Titulek vrstvy je popis vrstvy (pro člověka čitelný).
<Abstract>:
Jedná se o popis vlastností stylu vrstvy (mapy).
<LegendURL>:
Odkazuje na URL obsahující legendu daného stylu vrstvy a vymezuje formát této legendy.
<StyleSheetURL>:
Odkazuje na URL popisující symboliku informací stylu vrstvy a formát tohoto popisu.
<StyleURL>:
Odkazuje na URL obsahující podrobnější informace popisující styl vrstvy a formát tohoto popisu.
Tabulka 2.10 - Atributy vrstvy pro verzi WMS 1.1.1
Atribut Hodnota Význam
queryable 0, 1 zda podporuje dotaz GetFeatureInfo
cascaded 0, celé kladné číslo 0 vrstva nebyla kaskádovaná
N vrstva byla N krát kaskádovaná
opaque 0, 1 0 představuje průhledná data nevo vektorovou kresbu
1 představuje neprůhledná data
noSubsets 0, 1 pokud je hodnota 1 tak server není schopen přijmat dotaz GetMap zasahující za mez danou <BoundingBox>
fixedWidth 0, celé kladné číslo pokud je jiné číslo než 0 tak server umí obrazová data šířit jen v těcho pixelech (šířka a výška)
fixedHeight 0, celé kladné číslo

Tabulka 2.11 - Dědičnost prvků (tagu) vrstvy (layer)
Prvek Počet Dědičnost
<Layer> 0+ neni
<Name> 1 neni
<Title> 1 neni
<Abstract> 0/1 neni
<KeywordList> 0/1 neni
<Style> 0+ přidává
<SRS> 1+ přidává
<LatLonBoundingBox> 1 přepisuje
<BoundingBox> 0+ přepisuje
<Dimension> 0+ přidává
<Extent> 0+ přepisuje
<Attribution> 0/1 přepisuje
<AuthorityURL> 0+ přidává
<Identifier> 0+ neni
<MetadataURL> 0+ neni
<DataURL> 0/1 neni
<FeatureListURL> 0/1 neni
<ScaleHint> 0/1 přepisuje
atributy <Layer> 0/1 přepisuje

Kapitola 3

Vyhledávání WMS serverů

Protože je tento prostředek pro šíření mapových produktů poměrně mladý, tak teprve až v posledních dvou letech se začínají ve větší míře vyskytovat stránky, které informují o této službě. Na některých existuje i možnost vyhledávání WMS serverů spolu s jejich vrstvami a styly.

3.1 Současné možnosti vyhledávání

3.1.1 Stávající situace seznamů WMS serverů na internetu

1) http://www.ogc-services.net/ [41]
Tato stránka spravuje seznam WMS serverů z celého světa. Je zde uveden název serveru, počet dostupných vrstev, datum přidání, URL GetCapabilities dotazu a abstrakt. Dále tu existuje formulář na přidání další služby. Možnost vyhledávání je zde řešena pomocí google vyhledávacího pole.
2) http://exploreourpla.net/gis/maps/ [42]
Tato stránka spravuje seznam WMS serverů z celého světa. U daného WMS je uveden název serveru, jsou vyjmenované dostupné vrstvy s geografickým omezením. Možnost vyhledávání je zde řešena pomocí interního vyhledávacího pole.
3) http://www.skylab-mobilesystems.com/en/wms_serverlist.html [43]
Jedná se o verzi WMS seznamu, od které bylo upuštěno. Novou možností je http://www.ogc-services.net/ (popsáno v 1. bodě). Obsahuje seznam serverů s počtem vrstev. Po kliknutí na odkaz serveru je možno získat XML dotazu GetCapabilities.
4) http://wms-sites.com/ [44]
Tento portál je zatím doposud asi jeden z nejlepších pro správu informací o WMS serverech. U WMS serveru jsou evidovány tyto informace: název, počet vrstev, URL GetCapabilities dotazu a čas změny. Po kliknutí na odkaz serveru se zobrazí dostupné informace o dostupných vrstvách serveru: název, jméno a podporované souřadnicové systémy. Dále se zde nachází formulář na přidání další služby. Portál poskytuje poměrně podrobné vyhledávání dle klíčových slov.
5) http://columbo.nrlssc.navy.mil/ogcwms/servlet/WMSServlet/ [62]
Tato stránka obsahuje poměrně velké množství (ke dni 29. 5. 2007 1371 URL) WMS serverů. Jsou zde řazeny dle názvu serverů. Dále je uvedeno URL WMS serveru a odkaz na XML dotazu GetCapabilities.

3.1.2 Další možnosti vyhledávání WMS serverů

1) využití možností internetových vyhledávačů
Jedná se o použití internetových vyhledávacích portálů, jakými jsou například: www.google.com, http://www.yahoo.com/, http://www.altavista.com/, http://www.seznam.cz/, atd. U takovýchto vyhledávacích portálů lze použít jak základní, tak i pokročilé vyhledávání údajů. Hledání může probíhat za použití nejrůznějších kombinací klíčových slov, jimiž jsou např: "wms", "map", "web map server", "ogc", "service", "server", atd.
2) využití metainformačních systémů
Jde o informační systém (tenký, tlustý popř. kombinace obou), který se specializuje na hledání údajů v metadatech. Dokáže pak na něj klást nejrůznější požadavky. Takovým produktem je např. MIcKA [45] (Metainformační katalog) firmy HELP SERVICE - REMOTE SENSING s.r.o. sídlící v Benešově.

3.2 Návrh nových způsobů vyhledávání dat spravovanými WMS servery

Jedná se o úvahy, jaké formy hledání mezi těmito daty by mohly být aplikovány na vytvářený portál o webových mapových službách. Některé z těchto zjištěných byly následně aplikovány do vyhledávací sekce portálu.

Předpokladem je, že máme jakýmsi způsobem centralizována metadata (XML soubory dotazu GetCapabilities).

Jednou variantou by bylo mít data umístěna ve složce a portál by poté prohledával jednotlivé soubory a hledal server, vrstvu nebo styl vrstvy, který by vyhovoval hledané informaci. Tento způsob postupu by byl velice zdlouhavý a nepraktický. Často by potom mohlo dojít k situaci, kdy se PHP skript obsluhující toho hledání přeruší vlivem proměnné omezující max. dobu provádění skriptu.

Daleko výhodnější variantou by bylo načtení tohoto souboru do databáze např. MySQL. Předpokladem je vytvoření kvalitní struktury databáze, aby dokázala pojmout informace uložené v XML souboru. Tato databáze by měla potom mít logicky vytvořené tabulky. Sloupce tabulek by měly být omezeny použitím správných datových typů, volbou jejich výchozích hodnot, délkou datového typu, a volbou, zda jsou povinné či ne pro zápis (stanovením domén).

3.2.1 Způsoby hledání mezi WMS servery

  1. fulltextové hledání:
    Jde o způsob hledání dat pomocí zadaného (hledaného) slova v určitých údajích metadat. Značky (tagy) ve kterých má smysl hledat:
    - server:
    <Version>, <Name>, <Title>, <Abstract>, <Keyword>, <ContactPosition>, <Address>, <City>, <StateOrProvince>, <Country>, <ContactPerson>, <ContactOrganization>
    - layer:
    <Name>, <Title>, <Abstract>, <Keyworld>, <CRS>, <Attribution> - <Title>
    - style:
    <Name>, <Title>, <Abstract>
    Výsledkem hledání např. slova "voda" by poté měl být seznam pozitivních výsledků se zobrazením potřebných dat:
    server: URL serveru, název serveru
    vrstva: URL serveru, název serveru, název vrstvy
    styl vrstvy: URL serveru, název serveru, název vrstvy, název stylu vrstvy
  2. fulltextové hledání specializované:
    Jde o ten samý princip hledání, jak je uveden v bodě 1), ale na rozdíl od něj se zobrazí pouze pozitivní výsledky v kategorii server, vrstva nebo styl vrstvy.
  3. geografické hledání dle bodu v souřadnicích WGS84:
    Z informací o rozboru metadat WMS serveru vyplývá, že území které je zobrazované pomocí vrstev jedním WMS serverem, je ohraničeno geografickým boxem. Tento box je dán zeměpisnou délkou (longitude) a šířkou (latitude) v desetinných stupních. Jedná se o souřadnice v systému WGS1984 lat/lon dané kódem EPSG:4326.
    Je-li potom dán bod (zeměpisná délka a šířka), tak podle něj chceme najít všechny dotčené WMS servery. Postup hledání názorně ilustruje obrázek 2.
    Ukázka geografického hledání dle bodu
    Obrázek 8 - Ukázka geografického hledání dle bodu
  4. geografické hledání dle boxu v souřadnicích WGS84:
    Pokud bychom chtěli dle 3) najít WMS servery zobrazující například území města, tak bychom skoro určitě neuspěli. Město svou nepatrnou rozlohou deformuje ohraničující geografický box do bodu. Postup pro hledání takového mapového serveru by mohl být následovný. Vytvořil by se hledací box, jenž by obsáhl souřadnice bodu města. U takovéhoto boxu by v obecném případě z hlediska geografické rozlohy území mohly nastat tyto případy:
    - hledaný box by svou rozlohou ležel uvnitř boxu WMS serveru (100% překryt)
    - hledaný box by svou rozlohou ležel částí na boxu WMS serveru (0% < x < 100% překryt)
    - hledaný box by svou rozlohou nezasáhl do boxu WMS serveru (0% překryt)
    Ukázka geografického hledání dle boxu
    Obrázek 9 - Ukázka geografického hledání dle boxu
    Abychom nemuseli řešit polohu boxů z hlediska zemských kvadrantů pro výpočet plochy, posuneme počátek soustavy tak, aby celá Země měla kladné zeměpisné souřadnice.
    lon_II=lon_I+180°
    lat_II=lat_I+90°
    Tento posun se musí provést se souřadnicemi hledaného bodu (obr. 5).
    Posun počátku zeměpisného souřadnicového systému
    Obrázek 10 - Posun počátku zeměpisného souřadnicového systému
  5. geografické hledání dle bodu v souřadnicích obecného souřadnicového systému:
    U každé vrstvy jsou vyjmenovány podporované souřadnicové systémy (CRS). Každý tento systém může mít prostorové omezení (box). Je to obdobný princip jako u geografického zeměpisného boxu. Potom při volbě CRS například EPSG:2065 (S-JTSK) lze obdobně postupovat jako při geografickém hledání dle bodu 3).
  6. geografické hledání dle boxu v souřadnicích obecného souřadnicového systému:
    Tak jak je uvedeno v geografické hledání dle boxu v souřadnicích WGS84, tak by se dalo postupovat při hledání s volbou CRS, například EPSG:2065 (S-JTSK).

Kapitola 4

Webový portál o WMS

Zcela jistě můžu tvrdit, že kterýkoliv běžný uživatel internetu nemá potuchy o možnosti prohlížet si mapová data území celého světa a dokonce i jiných planet. Přitom existuje celá řada prostředků, jenž mu webové mapové služby resp. jejich servery dokáží zpřístupnit, a to jak prostřednictvým webových aplikací (tenký klient) nebo softwarových produktů (tlustý klient). Cílem této bakalářské práce je snaha zasvětit případného návštěvníka těchto stránek do webové mapové služby a umožnit mu vyhledat jakýkoli WMS server nacházející se v databázi.

Pro koho jsou tedy tyto stránky určeny? Pro kohokoliv, koho zajímají mapové produkty a informační technologie. Portál mohou využívat školy jako prostředek podpory výuky např. v předmětu kartografie, soukromé subjekty, jenž mají zájem o využití WMS, státní správa, resp. magistráty, aj. úřady.

Stránky jsou vytvořeny v poměrně novém značkovacím jazyku pro tvorbu XHTML ve verzi 1.1. Nelze je však chápat jako statický web, protože jsou vytvořeny ve skriptovacím jazyku PHP, který má zajistit snazší obsluhu a údržbu portálu. Jejich vzhled je ovlivněn souborem kaskádových stylů vytvořených pro obrazovku monitoru.

Stránky byly optimalizovány pro rozlišení 1024x768px. Uživateli s větším rozlišením se zobrazí informace v šířce 768px zarovnané vlevo k obrazovce. V opačném případě nebude vidět kompletně stránka, ale bude k ní přístup pomocí posuvných lišt. Vzhled a správné zobrazování byly zkontrolovány v prohlížečích Firefox 1.5.0, Internet Expolorer 6 a Opera 8.

4.1 Informační sekce webového portálu

Prvotní snahou je návštěvníka informovat o webových mapových službách (WMS) a možnostech jejich využití, s uvedením praktických příkladů. Uživatel by se hned v úvodu měl dozvědět k čemu WMS je a pro koho je určeno. Dále zjistí informace o historickém vývoji této služby a popřípadně o budoucnosti vývoje. Poté by měl vidět praktické ukázky toho, co WMS dovede. Důležitou informací by mělo být pro něj i seznam produktů (tenké a tlusté klienty) podporující připojení WMS, popřípadně návod na jejich používání.

Úvodní strana se skládá ze čtyř logických částí, jenž jsou obvyklé na mnoha jiných portálech. Jedná se o záhlaví, postranní lištu, vlastní obsah a zápatí.

Tato struktura obsahu byla vytvořena pomocí kaskádových stylů.

V záhlaví se nacházejí dva obrázky, které odkazují zpět na úvodní stranu. První z nich je logo stránek a druhé je obrázek s mapovými produkty šířenými pomocí WMS.

V postranní liště se nachází jako první rozevíratelné nabídkové menu, odkazující na základní informace o WMS. Prvek "novinky" odkazuje na seznam uložených článků, které sice souvisí s mapovými službami, ale obsahují informace, jenž se nedají zařadit k základním informacím. Dalším boxem odkazů je omezení článků dle jejich kategorií. Příkladem je odkaz na omezení "tenký-klient". Pro možnost vyhledávání na těchto stránkách je zde přidáno pole pro vyhledávání pomocí vyhledávače www.google.com. Předposlední informací v postranní liště jsou statistiky portálu (návštěvnost a dostupnost portálu). Jako poslední jsou uvedeny odkazy, jenž souvisí s obsahem portálu.

V boxu "vlastní obsah" se nacházejí vlastní informace získané pomocí kliknutím na odkazy z postranní lišty.

Součástí zápatí jsou odkazy na kontrolu platnosti (validity) formátů XHTML 1.1 a CSS2.

Vzhled informační sekce portálu
Obrázek 11 - Vzhled informační sekce portálu

4.2 Vyhledávací sekce webového portálu

Problém pro běžného uživatele by nastal hned na začátku, a to v neznalosti URL mapového serveru WMS. Bez znalosti této adresy není možno žádnou vrstvu připojit. Na internetu pomocí vyhledávačů, jimiž jsou např. www.google.com, www.seznam.cz, je možno si potřebné URL vyhledat. Problém nastává, pokud hledáme specifická mapová data. A to je dalším cílem této práce vytvořit jakýsi seznam WMS serverů zasahující naše území. Výhodou tohoto seznamu, jenž zpracuje metadata o WMS serveru, je centralizování všech metadat do interní databáze.

Na takovouto naplněnou databázi je potom snadné klást nejrůznější dotazy. Například:

Prohlížení seznamu WMS serverů (databázová sekce)
Obrázek 12 - Prohlížení seznamu WMS serverů (databázová sekce)

Prohlížení jednoho WMS serveru (databázová sekce)
Obrázek 13 - Prohlížení jednoho WMS serveru (databázová sekce)

Prohlížení vrstvy WMS serveru (databázová sekce)
Obrázek 14 - Prohlížení vrstvy WMS serveru (databázová sekce)

4.2.1 Přehled vytvořených PHP tříd

Kdyby se měla vyhledávací část portálu vytvořit pomocí klasického procedurálního programování, které využívá pro vykonání úloh proměnné a funkce, tak by brzo nastal zmatek v tom, co každá funkce obsluhuje. Výhodnější z hlediska objektově orientovaného programování (OOP) je práce s třídami.

Objekt (třída) obsahuje jak data (například proměnné), tak popis a způsob, jak s nimi manipulovat (členské metody). Díky tomu může zjednodušeně řečeno objektové programování řešit některé věci pružněji než procedurální. Hlavní výhodou objektu je fakt, že umožňuje popisovat věci tak, jak fungují v běžném životě. Například automobil má určité vlastnosti (barvu, typ, spotřebu apod.), ale rovněž určité věci umí (mohli bychom popsat metodami JedDoMista, Natankuj, Stuj a podobně). V objektově orientovaných jazycích hovoříme o tom, že objekty mají stav ("co to je") a chování ("co to umí").

Objekty se v OOP musejí nejprve nadefinovat. K definici objektu slouží takzvané třídy. Třída je něco jako šablona nebo prototyp, na jehož základě se budou objekty tvořit. V PHP se třída definuje pomocí klíčového slova class.

Tabulka 4.3 - Ukázka PHP třídy
<?
class kalendar
{
   var $mesic;
   var $rok;
   function PocetDnu ()
   {
     return cal_days_in_month(CAL_GREGORIAN, $this->mesic, $this->rok);
   }
   // zkráceno
}

$muj_kalendar= new kalendar;
$muj_kalendar->mesic=7;
$muj_kalendar->rok=2004;
$muj_kalendar->vypis();
?>
Seznam vytvořených tříd:
1) c_GC_100.php, c_GC_107.php, c_GC_110.php, c_GC_111.php, c_GC_130.php
Třídy, které obsluhují zpracování obsahu XML souboru dotazu GetCapabilities do proměnné typu pole. Je jich celkem pět, a to z důvodu stejného počtu verzí XML souboru získaného tímto dotazem. Každý z těchto souborů je rozdílný z hlediska použitých názvů tagu, jejich obsahu, apod.
2) c_GC2db.php
Třída pro načtení pole s XML souborem do databáze MySQL.
3) c_db2tab.php
Třída pro zobrazení záznamů z databáze do tabulek ve formátu XHTML.
4) c_searchWMS.php
Třída pro hledání v databázi dle nejrůznějších parametrů. Vrací indexy pozitivních výsledků.
5) c_dbsearch2tab.php
Třída pro zobrazení pozitivních výsledků z databáze do tabulek ve validním formátu XHTML.
6) c_export2xml.php
Třída pro export WMS serverů a jejich základních parametrů do XML formátu.
7) c_updateDB.php
Třída pro zajištění opětovné aktualizace databáze a kontroly obsahu databáze.
8) c_URL_wms.php
Třída, která obsahuje spoustu členských funkcí pro testy na GetCapabilities dotaz.

4.3 Použité jazyky pro vytvoření portálu

4.3.1 PHP (PHP Hypertext preprocessor)

PHP je skriptovací jazyk pro tvorbu dynamických internetových stránek. Vznikl kolem roku 1994. Tehdy se pan Rasmus Lerdorf rozhodl vytvořit jednoduchý systém pro počítání přístupu ke svým stránkám. Původně byl tento kód napsán v PERLu. Později, z důvodu zátěžování kódu serveru byl systém přepsán do jazyka C. Sada těchto skriptů byla ještě později téhož roku vydána pod názvem "Personal Home Page Tools, zkrácene PHP (pozdější název "Personal Home Page Construction Kit").

U toho však nezůstalo. V polovině roku 1995 se systém PHP spojil s jiným programem stejného autora, a to s nástrojem "Form Interpreter" neboli zkrácene FI. Tak vznikl PHP/FI 2.0, systém, který si získal celosvětovou proslulost a byl velmi rozšířen. Od poloviny roku 1998 byla k dispozici verze 3.0, která byla mnohem rychlejší, a vybavenější než verze 2.0, která byla k dispozici rovněž pod Windows. Počet webu, které používaly PHP se zvyšoval, až dosáhl cca 150 000. Do rodiny verzí 5 bylo přidáno mnoho nových funkcí a rovněž bylo přepracované jádro Zend.

Podle údajů z dubna 2004 pracuje s PHP přes 15 000 000 domén, a to je bezkonkurenčně nejčastěji používaný modul Apache serveru. Zkratka PHP by se měla dle moderního pojetí překládat jako "PHP: Hypertext preprocessor", česky bychom nazvali "předzpracovávač hypertextu".

V současné době je již k dispozici verze PHP 5. Je obohacena o jádro Zend II, kompletně přepsaná podpora XML, nové objektové rozhraní pro práci s databází MySQL a mnoho dalšího. Z toho vyplývá, že systém je stále vybavován novými technologiemi a je aktivně vyvíjen.

4.3.2 XHTML (eXtensible Hypertext Markup Language)

XHTML je zkratkou anglického názvu eXtensible Hypertext Markup Language a v překladu znamená "rozšiřitelný značkovací jazyk pro hypertext". Narozdíl od svého předchůdce HTML a jeho vývojových verzí, se hlavním principem nového formátu webových stránek stalo striktní dodržení syntaktických pravidel XML. Jedná se tedy o obdobný jazyk jako HTML sloužící pro tvorbu hypertextových dokumentů v prostředí internetu. Tuto aplikaci XML vyvinulo konsorcium W3C. Narozdíl od svého předchůdce HTML jehož vývoj se zastavil, je XHTML poměrně mladý a rozvíjející se jazyk.

Postup vývoje XHTML začal verzí XHTML 1.0, jejímž hlavním cílem bylo splnit podmínky XML dokumentů se zachováním zpětné kompatibility. Tento vývojový stupeň umožňoval zápis struktury ve třech různých modifikacích Strict, Transitional a Frameset.

Verze XHTML 1.1 již vynechává prakticky všechny prezentační vlastnosti a je hodně podobná verzi Strict. V současné době pracuje pracovní skupina XHTML W3C konsorcia na vývoji verze XHTML 2.0.

4.3.3 CSS (Cascading Style Sheets)

S rozvojem popularity webu stoupaly nároky autorů www stránek na ovlivňování vzhledu svých HTML dokumentů. Jako jeden z prvních přišel prohlížeč Netscape s implementací formátovacích nástrojů do samotného HTML kód. Tato situace se s postupem času ukázala jako chybná, protože došlo ke sloučení dvou principů, struktury a vzhledu dokumentu v jeden formát. Dodnes ještě neseme negativní důsledky tohoto počinu. Snahu tuto nepříjemnou situaci vyřešit projevilo W3C konsorcium, a to prostřednictvím Cascading Style Sheets (CSS), což v překladu znamená kaskádové styly. Jedná se o nově vytvořený jazyk pro popis způsobu zobrazení dokumentů napsaných v nejrůznějších jazycích HTML, XHTML nebo XML.

Hlavním cílem byla snaha oddělit strukturu a obsah dokumentu od jeho vzhledu. Strukturou a obsahem jsou řetezce, které jsou umístěny do příslušných tagů dle svého významu. Jedná se například o nadpis, odstavec, internetový odkaz, obrázek, atd. Vzhled příslušného dokumentu lze chápat nejjednodušeji v různých barvách písmen, orámování elementů, pozicování na stránce, a spoustě dalších příkladů.

První verze specifikace CSS1 spatřila světlo světa už v roce 1996. V roce 1998 následovalo vydání doporučení specifikace CSS2. A jako důkaz, že kaskádové styly jsou živým formátovacím jazykem pro nejrůznější dokumenty je to, že v současné době se pracuje na verzi CSS3.

Kaskádové styly umožňují připojení CSS k danému dokumentu čtyřmi základními možnostmi.

Nejdůležitější význam a umožňění nejširšího využití možností CSS, je zápis do externího souboru, který je připojen k (X)HTML pomocí tagu <link> ležícího uvnitř tagu <meta>. Tento způsob dovoluje definovat zobrazení dokumentů pro nejrůznější druhy médií, např. obrazovka, papír(tisk), kapesní počítač, hlasový syntetizér, apod.

Příklad formátování všech tagů <p> (odstavců), pokud vlivem kaskádování nedojde ke změně těchto hodnot:

Tabulka 4.4 - ukázka CSS pro tag P (odstavec)
P {
    color: blue; /* barva písma */
    font-size: 12px; /* velikost písma */
    text-align: left; /* zarovnání písma */
}

4.3.4 SQL (Structured Query Language)

Structured Query Language (strukturovaný dotazovací jazyk) SQL je standardizovaný dotazovací jazyk používaný v relačních databázích, který umožňuje klientovi nebo uživateli komunikovat s databázovým serverem a klást na něj nejrůznější dotazy dle možností daného serveru.

Kořeny původu má SQL už v 70. letech 20. století, kdy probíhal ve firmě IBM výzkum relačních databází, což bylo nutné pro ovládání těchto databází. Vznikla vytvořená sada příkazů pro ovládání databáze. Jazyk se jmenoval SEQUEL (Structured English Query Language). Snahou bylo vytvořit jazyk, ve kterém by se příkazy tvořily syntakticky co nejblíže přirozenému jazyku (angličtině).

K vývoji jazyka se postupně připojily další firmy. V r. 1979 uvedla na trh firma Relational Software, Inc. (dnes Oracle Corporation) svůj relační databázový systém Oracle. Poté následovaly další typy databází různých firem. Jazyk SEQUEL se v té době přejmenoval na SQL.

S rostoucím významem relačních databází bylo nutné jejich dotazovací jazyk standardizovat. Americký institut ANSI založil nový standard na SQL, který bývá označován jako SQL-86.

V dalších letech se ukázalo, že SQL-86 obsahuje některé nedostatky a naopak v něm nejsou obsaženy některé důležité prvky týkající se hlavně integrity databáze. V roce 1992 byl proto přijat nový standard SQL-92 (někdy se uvádí jen SQL2). Zatím nejnovějším standardem je SQL3 (SQL-99), který reaguje na potřeby nejmodernějších databází s objektovými prvky.

Standardy podporuje prakticky každá relační databáze, ale obvykle nejsou implementovány vždy všechny požadavky normy. A naopak, každá z nich obsahuje prvky a konstrukce, které nejsou ve standardech obsaženy. Přenositelnost SQL dotazů mezi jednotlivými databázemi je proto omezená.

Tabulka 4.5 - ukázka SQL dotazů na výběr dat z tabuleky
SELECT ID_server, Version, Name, Title, Abstract, SY_Include, SY_URL, OL_Resource FROM wms_server WHERE SY_Active=1 LIMIT 1, 10;

Závěr

Webový portál Web Map Service (WMS), jenž se stal cílem této bakalářské práce, znamenal nejprve pochopit princip WMS normy, a poté následně WMS serveru. Po porozumění těmto principům se mou snahou stalo pochopit obsah a způsob získání XML souboru metadat WMS. Tento soubor obsahuje vysoce hodnotné informace popisující WMS server z mnoha hledisek.

Následně jsem vytvořil webový portál složený ze dvou sekcí. Informační a vyhledávací části.

Informační sekce je naplněna základními informacemi o Web Map Service. Postupně tuto sekci ještě doplním o další informace a dále o výsledky bakalářské práce Jana Říhy na téma Webové mapové služby - datové zdroje. Zajímovou možností této sekce je kromě standardního popisu WMS, možnost aktualizace obsahu pomocí článků rozřazených do několika kategorií. V těchto článcích je pak možno popsat například způsob připojení WMS serveru do nejrůznějších klientů nebo popsat možnosti určitých mapových serverů (WMS serverů).

Vyhledávací sekce je programovou částí portálu vytvořenou pomocí objektově orientovaného programování v jazyce PHP. V této sekci si lze prohlížet možnosti (metadata) WMS serverů uložených v interní databázi. Do této databáze lze přidat další servery, popř. aktualizovat stávající. Aby byla databáze i prakticky využitelná, přidal jsem pět možností vyhledávání. Jsou jimi fulltextové hledání, fulltextové hledání specializované, geografické hledání dle bodu (boxu) v souřadnicích WGS84, geografické hledání dle bodu v souřadnicích obecného souřadnicového systému (podrobněji v odstavci 3.2.1). Informace popisující stav databáze lze najít v části statistiky (počet WMS serverů, podíl jednotlivých verzí, aj.). Zároveň bylo mým záměrem i to, aby tento seznam bylo možno exportovat a využít v nejrůznějších institucích, projektech, apod. Formát tohoto exportu jsem definoval pomocí již dříve zmíněné definice typu dokumentu (DTD).

Tento portál je umístěn na serveru GEO2, katedry Mapování a kartografie, Fakulty stavební, ČVUT

http://geo2.fsv.cvut.cz/wms

Doufám, že tyto stránky budou využívány jak školami (například ČVUT, Fsv, obor Geodézie a kartografie ve výuce předmětů, jenž se soustředují na GIS), tak i institucemi jako je státní správa (např. ČUZK), samospráva (např. krajské úřady) a soukromý sektor.

Přílohy této práce (Webový portál o mapových službách) tvoří výpisy souborů DTD popisující XML dotazu GetCapabilities a popis vyjímky Exception pro nejrozšířenější WMS verzi 1.1.1 včetně příkladu XML dotazu GetCapabilities. Zároveň se zde nalézá výpis struktury MySQL databáze wms_list (Dump) pro ukládání metadat WMS serverů. Dalšími součástmi přílohy jsou také dva články informační sekce portálu a to EPSG (European Petroleum Survey Group) a Podpora Web Map Service (WMS) v GIS krajů ČR. Pro lepší názornost možností WMS jsou zde mapové kompozice náměstí Republiky v Plzni z několika WMS serverů. Poslední přílohu tvoří přiložený kompaktní disk (CD), což je nedílná součást práce.

Seznam obrázků

Obrázek 1 - Princip interakce WMS (člověk - stroj - stroj)
Obrázek 2 - Princip tzv. kaskádování WMS serverů
Obrázek 3 - Tenký klient společnosti HS RS s.r.o.
Obrázek 4 - Tlustý klient Gaia 3.0
Obrázek 5 - Princip fungování mapového serveru, zdroj [47]
Obrázek 6 - Výsledek dotazu GetMap na server
Obrázek 7 - Schéma vazeb mezi URI, URL a URN
Obrázek 8 - Ukázka geografického hledání dle bodu
Obrázek 9 - Ukázka geografického hledání dle boxu
Obrázek 10 - Posun počátku zeměpisného souřadnicového systému
Obrázek 11 - Vzhled informační sekce portálu
Obrázek 12 - Prohlížení seznamu WMS serverů (databázová sekce)
Obrázek 13 - Prohlížení jednoho WMS serveru (databázová sekce)
Obrázek 14 - Prohlížení vrstvy WMS serveru (databázová sekce)
Obrázek G1 - Vrstva "Doprava" serveru HS RS
Obrázek G2 - Vrstva "Doprava" a "Voda" serveru HS RS a vrstva "ortofoto" serveru ÚHÚL
Obrázek G3 - Vrstva "Doprava" a "Voda" serveru HS RS a vrstva "VM2" mapserveru FSV, ČVUT
Obrázek G4 - Vrstva "Doprava" a "Voda" serveru HS RS a vrstva "Hlavní výkres po změně č. 278 Plzeň"

Literatura

[1]  Knihovny ČVUT [online]. 1996-2006 [cit. 2007-04-28]. Dostupný z WWW: <http://knihovny.cvut.cz/vychova/vychova2/bibl_citace/bibl_citace_podle_norem.html>.
[2]  EPSG : OGP Surveying & Positioning Committee [online]. 2006 [cit. 2007-04-28]. Dostupný z WWW: <http://www.epsg.org>.
[3]  OGP : The International Association of Oil & Gas producers [online]. 2006 [cit. 2007-04-28]. Dostupný z WWW: <http://www.ogp.org.uk/>.
[4]  Wikipedia : English version [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://en.wikipedia.org/>.
[5]  Google. Google Earth : KML Documentation [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://earth.google.com/kml/>.
[6]  OGC. Geography Markup Language [online]. 1994-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.opengeospatial.org/standards/gml>.
[7]  OGC. Open Geospatial Consortium, Inc.® (OGC) [online]. 1994-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.opengeospatial.org>.
[8]  Google. Google Earth [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://earth.google.com/>.
[9]  Google. Google Maps [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://maps.google.com/>.
[10] Google. Google Mobile [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.google.com/gmm>.
[11] KaMeLwriter [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.kamelwriter.com/>.
[12] WMS schema [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://schemas.opengeospatial.net/wms/>.
[13] W3C. Extensible Markup Language (XML) : 1.0 (Fourth Edition) [online]. 2006 [cit. 2007-04-28]. Dostupný z WWW: <http://www.w3.org/TR/REC-xml>.
[14] W3C. Naming and Addressing : URIs, URLs, ... [online]. 1997 [cit. 2007-04-28]. Dostupný z WWW: <http://www.w3.org/Addressing/>.
[15] W3C. XML Schema [online]. 2000-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.w3.org/XML/Schema>.
[16] W3C. XHTML 2.0 [online]. 2006 [cit. 2007-04-28]. Dostupný z WWW: <http://www.w3.org/TR/xhtml2/>.
[17] W3C. Cascading Style Sheets [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.w3.org/Style/CSS/>.
[18] Ostravská univerzita v Ostravě. GIS laboratoř [online]. 2006-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://cit.osu.cz/gis/>.
[19] TALICH, Milan. Webové služby a aplikace XML. Inforum 2004, Praha, 25. - 27. května 2004. Sborník [online]. 2004 [cit. 2007-04-28]. Dostupné z WWW: <www.inforum.cz/inforum2004/pdf/Talich_Milan1.pdf>.
[20] HSRS. HELP SERVICE - REMOTE SENSING [online]. 2000 [cit. 2007-04-28]. Dostupný z WWW: <http://www.bnhelp.cz/>.
[21] Ostravská univerzita v Ostravě. GIS laboratoř [online]. 2004 [cit. 2007-04-28]. Dostupný z WWW: <http://www.dbsvet.cz/view.php?cisloclanku=2004121602>.
[22] POKORNÝ , Martin. Vyvíjíme databázový a informační systém XXIII. [online]. 2004 [cit. 2007-04-28]. Dostupný z WWW: <http://www.dbsvet.cz/view.php?cisloclanku=2004121602>.
[23] HSRS. HELP SERVICE - REMOTE SENSING: Webové služby [online]. 2000 [cit. 2007-04-28]. Dostupný z WWW: <http://www.bnhelp.cz/bnhelp/ows.htm>.
[24] DVOŘÁKOVÁ, Eva. Mapový server. IKAROS [online]. 2006, roč. 10, č. 9 [cit. 2007-04-28]. Dostupný z WWW: <http://www.ikaros.cz/node/3597>.
[25] CAJTHAML, Jiří. Topografická a tematická kartografie : 4. úloha [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://gama.fsv.cvut.cz/wiki/index.php/Topografick%C3%A1_a_tematick%C3%A1_kartografie_-_4._%C3%BAloha>.
[26] Mapový server Jihočeského kraje : Metadata [online]. 2005 [cit. 2007-04-28]. Dostupný z WWW: <http://gis.kraj-jihocesky.cz/metadata.jsp>.
[27] BARTOŠEK, Miroslav. Vyhledávání v Internetu a DUBLIN CORE [online]. 1999 [cit. 2007-04-28]. Dostupný z WWW: <http://www.ics.muni.cz/zpravodaj/articles/153.html>.
[28] YOUNG, Michael J. XML : krok za krokem. 2. aktualiz. vyd. [s.l.] : Computer Press, 2006. 471 s. ISBN 80-251-1070-2.
[29] KŘIPAČ, Miroslav. Hledání výrazů a fulltext v MySQL [online]. 2004 [cit. 2007-04-28]. Dostupný z WWW: <http://www.fi.muni.cz/~kripac/PV136/zurek/prezentace.html>.
[30] MySQL AB.. MySQL [online]. 1995-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.mysql.com/>.
[31] JANOVSKÝ, Dušan. CSS : Kaskádové styly [online]. 2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.jakpsatweb.cz/css/>.
[32] PETR, Honza. JakNaWeb : CSS [online]. 2002-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.jaknaweb.com/clanky/css>.
[33] PROKOP, Marek. CSS : kaskádové styly pro webdesingnéry. 1. vyd. [s.l.] : Mobil Media, 2003. 288 s. ISBN 80-86593-35-5.
[34] ZAJÍC, Petr. PHP tutorial [online]. 2004 [cit. 2007-04-28]. Dostupný z WWW: <http://www.linuxsoft.cz/php/>.
[35] ZAJÍC, Petr. MySQL tutorial [online]. 2004 [cit. 2007-04-28]. Dostupný z WWW: <http://www.linuxsoft.cz/article_list.php?id_kategory=232>.
[36] XHTML : eXtensible HyperText Markup Language [online]. 2004 [cit. 2007-04-28]. Dostupný z WWW: <http://www.webtvorba.cz/xhtml/>.
[37] Interval.cz : webdesign XHTML [online]. 2001-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://interval.cz/webdesign/xhtml/>.
[38] Interval.cz : webdesign CSS [online]. 2001-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://interval.cz/webdesign/css/>.
[39] Interval.cz : vývoj aplikací PHP [online]. 2001-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://interval.cz/vyvoj-aplikaci/php/>.
[40] BRATKOVÁ, Eva. METADATA JAKO NOVÝ NÁSTROJ PRO KOMUNIKACI WEBOVSKÝCH INFORMAČNÍCH ZDROJŮ [online]. 1999 [cit. 2007-05-10]. Dostupný z WWW: <http://knihovna.nkp.cz/pdf/9904/9904178.pdf>.
[41] Www.OGC-Services.net. Skylab Mobilesystems Ltd. [online]. 2006 [cit. 2007-05-15]. Dostupný z WWW: <http://www.ogc-services.net/>.
[42] BECKER, Torsten. Explore Our Planet [online]. 2007 [cit. 2007-05-15]. Dostupný z WWW: <http://exploreourpla.net/gis/maps/>.
[43] Skylab Mobilesystems Ltd. . OGC WMS Server List [online]. 2006 [cit. 2007-05-15]. Dostupný z WWW: <http://www.skylab-mobilesystems.com/en/wms_serverlist.html>.
[44] WMS Sites [online]. 2006 [cit. 2007-05-15]. Dostupný z WWW: <http://wms-sites.com/>.
[45] HSRS. Metainformační katalog MIcKA [online]. 2006 [cit. 2007-05-15]. Dostupný z WWW: <http://www.bnhelp.cz/bnhelp/micka>.
[46] DOLEŽAL, Jan. Diplomová práce: Datové formáty pro prezentaci map na webu. 1. vyd.: ČVUT - Fakulta stavební, 2005. 63 s.
[47] ČEPICKÝ, Jáchym. Tutorial : Mapový server snadno a rychle [online]. 2005 [cit. 2007-05-13]. Dostupný z WWW: <http://www.root.cz/clanky/mapovy-server-snadno-a-rychle-1/>.
[48] OGC. OGC Web Map Service Interface : version 1.3.0 [online]. 2004 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=4756>.
[49] OGC. OpenGIS® Web Map Server Implementation Specification : version 1.3.0 [online]. 2006 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=14416>.
[50] OGC. OpenGIS® Web Map Services - Application Profile for EO Products : version 0.1.0 [online]. 2006 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=16075>.
[51] OGC. Web Map Service Implementation Specification : version 1.1.1 [online]. 2002 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=1081&version=1&format=pdf>.
[52] OGC. Web Map Service Implementation Specification : version 1.1.0 [online]. 2001 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=1058>.
[53] OGC. OpenGIS® Web Map Server Interface Implementation Specification : version 1.0.0 [online]. 2000 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=7196>.
[54] OGC. OGC Web Map Service - Proposed Animation Service Extension [online]. 2005 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=14698>.
[55] OGC. Web Map Service Implementation Specification Part 2:XML for Requests using HTTP POST [online]. 2002 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=1118>.
[56] OGC. WMS Change Request: Support for WSDL & SOAP [online]. 2005 [cit. 2007-05-13]. Dostupný z WWW: <http://portal.opengeospatial.org/files/?artifact_id=9541>.
[57] HALOUNOVÁ, Lena. Geografický informační systém: prezentace z přednášek ČVUT, Fsv, oboru GaK. 2007 [cit. 2007-05-13].
[58] CENIA. Česká informační agentura životního prostředí [online]. 2007 [cit. 2007-05-13]. Dostupný z WWW: <http://www.cenia.cz/>.
[59] OGC. Open Geospatial Consortium, Inc.® (OGC): Web Map Service [online]. 1994-2007 [cit. 2007-04-28]. Dostupný z WWW: <http://www.opengeospatial.org/standards/wms>.
[60] University of Minnesota. MapServer [online]. 1996-2007 [cit. 2007-05-13]. Dostupný z WWW: <http://mapserver.gis.umn.edu/>.
[61] OGC. Open Geospatial Consortium, Inc.® (OGC): Web Feature Service [online]. 1994-2007 [cit. 2007-05-13]. Dostupný z WWW: <http://www.opengeospatial.org/standards/wfs>.
[62] DMAP Team. GIDB OpenGIS WEB SERVICES [online]. 2007 [cit. 2007-05-13]. Dostupný z WWW: <http://columbo.nrlssc.navy.mil/dmap/about.jsp>.
[63] Univerzitní informační systém - elektronická knihovna. Jak se geodata změní v mapové služby [online]. 2007 [cit. 2007-05-13]. Dostupný z WWW: <https://is.mendelu.cz/eknihovna/opory/zobraz_cast.pl?cast=5128>.
[64] VRÁTNÝ, Martin. State map center services - part of the public administration portal [online]. 2007 [cit. 2007-05-13]. Dostupný z WWW: <http://gis.vsb.cz/GIS_Ostrava/GIS_Ova_2004/Sbornik/Referaty/vratny.htm>.
[65] HREŠKO, Juraj. Bakalářská práce: Návrh aplikácie pre zobrazovanie geografických dát prostredníctvom WMS. 1. vyd.: MU - Fakulta informatiky, 2007. 36 s.
[66] SMC. Státní mapové centrum [online]. 2007 [cit. 2007-05-13]. Dostupný z WWW: <http://www.czmap.cz>.
[67] Open GeoWeb [online]. 2007 [cit. 2007-05-13]. Dostupný z WWW: <http://gis.vsb.cz/ruzicka/Seminare/OpenGeoWeb/Materials/OpenGeoWeb.pdf>.

Příloha A

Capabilities_1_1_1.dtd je soubor popisující (omezující) XML dotazu GetCapabilities. Je zde uvedena jen verze pro WMS 1.1.1, protože v době psaní této práce byla nejrozšířenější. Zdrojem je webový odkaz [12].

Výpis souboru capabilities_1_1_1.dtd

<!ELEMENT WMT_MS_Capabilities (Service, Capability) >

<!ATTLIST WMT_MS_Capabilities
version CDATA #FIXED "1.1.1"
updateSequence CDATA #IMPLIED>

<!-- Elements used in multiple places. -->

<!-- The Name is typically for machine-to-machine communication. -->
<!ELEMENT Name (#PCDATA) >

<!-- The Title is for informative display to a human. -->
<!ELEMENT Title (#PCDATA) >

<!-- The abstract is a longer narrative description of an object. -->
<!ELEMENT Abstract (#PCDATA) >

<!-- An OnlineResource is typically an HTTP URL. The URL is placed in the
xlink:href attribute. The xmlns:xlink attribute is a required XML namespace
declaration. -->
<!ELEMENT OnlineResource EMPTY>
<!ATTLIST OnlineResource
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
xlink:type CDATA #FIXED "simple"
xlink:href CDATA #REQUIRED >

<!-- A container for listing an available format's MIME type. -->
<!ELEMENT Format (#PCDATA) >


<!-- General service metadata. -->

<!ELEMENT Service (Name, Title, Abstract?, KeywordList?, OnlineResource,
ContactInformation?, Fees?, AccessConstraints?) >

<!-- List of keywords or keyword phrases to help catalog searching. -->
<!ELEMENT KeywordList (Keyword*) >

<!-- A single keyword or phrase. -->
<!ELEMENT Keyword (#PCDATA) >

<!-- Information about a contact person for the service. -->
<!ELEMENT ContactInformation (ContactPersonPrimary?, ContactPosition?,
ContactAddress?, ContactVoiceTelephone?,
ContactFacsimileTelephone?,
ContactElectronicMailAddress?) >

<!--The primary contact person.-->
<!ELEMENT ContactPersonPrimary (ContactPerson, ContactOrganization) >

<!--The person to contact.-->
<!ELEMENT ContactPerson (#PCDATA) >

<!--The organization supplying the service.-->
<!ELEMENT ContactOrganization (#PCDATA) >

<!--The position title for the contact person.-->
<!ELEMENT ContactPosition (#PCDATA) >

<!--The address for the contact supplying the service.-->
<!ELEMENT ContactAddress (AddressType,Address,City,StateOrProvince,PostCode,
Country) >

<!--The type of address.-->
<!ELEMENT AddressType (#PCDATA) >

<!--The street address.-->
<!ELEMENT Address (#PCDATA) >

<!--The address city.-->
<!ELEMENT City (#PCDATA) >

<!--The state or province.-->
<!ELEMENT StateOrProvince (#PCDATA) >

<!--The zip or postal code.-->
<!ELEMENT PostCode (#PCDATA) >

<!--The address country.-->
<!ELEMENT Country (#PCDATA) >

<!--Contact telephone number.-->
<!ELEMENT ContactVoiceTelephone (#PCDATA) >

<!--The contact fax number.-->
<!ELEMENT ContactFacsimileTelephone (#PCDATA) >

<!--The e-mail address for the contact.-->
<!ELEMENT ContactElectronicMailAddress (#PCDATA) >


<!-- Elements indicating what fees or access constraints are imposed. -->
<!ELEMENT Fees (#PCDATA)>
<!ELEMENT AccessConstraints (#PCDATA)>


<!-- A Capability lists available request types, how exceptions
may be reported, and whether any vendor-specific capabilities are defined. It
also includes an optional list of map layers available from this server. -->
<!ELEMENT Capability
(Request, Exception, VendorSpecificCapabilities?,
UserDefinedSymbolization?, Layer?) >

<!-- Available WMS Operations are listed in a Request element. -->
<!ELEMENT Request (GetCapabilities, GetMap, GetFeatureInfo?,
DescribeLayer?, GetLegendGraphic?, GetStyles?, PutStyles?) >

<!-- For each operation offered by the server, list the available output
formats and the online resource. -->
<!ELEMENT GetCapabilities (Format+, DCPType+)>
<!ELEMENT GetMap (Format+, DCPType+)>
<!ELEMENT GetFeatureInfo (Format+, DCPType+)>
<!-- The following optional operations only apply to SLD-enabled WMS -->
<!ELEMENT DescribeLayer (Format+, DCPType+)>
<!ELEMENT GetLegendGraphic (Format+, DCPType+)>
<!ELEMENT GetStyles (Format+, DCPType+)>
<!ELEMENT PutStyles (Format+, DCPType+)>

<!-- Available Distributed Computing Platforms (DCPs) are
listed here. At present, only HTTP is defined. -->
<!ELEMENT DCPType (HTTP) >

<!-- Available HTTP request methods. One or both may be supported. -->
<!ELEMENT HTTP (Get | Post)+ >

<!-- URL prefix for each HTTP request method. -->
<!ELEMENT Get (OnlineResource) >
<!ELEMENT Post (OnlineResource) >

<!-- An Exception element indicates which error-reporting formats are supported. -->
<!ELEMENT Exception (Format+)>

<!-- Optional user-defined symbolization (used only by SLD-enabled WMSes). -->
<!ELEMENT UserDefinedSymbolization EMPTY >
<!ATTLIST UserDefinedSymbolization
SupportSLD (0 | 1) "0"
UserLayer (0 | 1) "0"
UserStyle (0 | 1) "0"
RemoteWFS (0 | 1) "0" >

<!-- Nested list of zero or more map Layers offered by this server. -->
<!ELEMENT Layer ( Name?, Title, Abstract?, KeywordList?, SRS*,
LatLonBoundingBox?, BoundingBox*, Dimension*, Extent*,
Attribution?, AuthorityURL*, Identifier*, MetadataURL*, DataURL*,
FeatureListURL*, Style*, ScaleHint?, Layer* ) >

<!-- Optional attributes-->
<!ATTLIST Layer queryable (0 | 1) "0"
cascaded CDATA #IMPLIED
opaque (0 | 1) "0"
noSubsets (0 | 1) "0"
fixedWidth CDATA #IMPLIED
fixedHeight CDATA #IMPLIED >

<!-- Identifier for a single Spatial Reference Systems (SRS). -->
<!ELEMENT SRS (#PCDATA) >

<!-- The LatLonBoundingBox attributes indicate the edges of the enclosing
rectangle in latitude/longitude decimal degrees (as in SRS EPSG:4326 [WGS1984
lat/lon]). -->
<!ELEMENT LatLonBoundingBox EMPTY>
<!ATTLIST LatLonBoundingBox
minx CDATA #REQUIRED
miny CDATA #REQUIRED
maxx CDATA #REQUIRED
maxy CDATA #REQUIRED>

<!-- The BoundingBox attributes indicate the edges of the bounding box
in units of the specified spatial reference system. -->
<!ELEMENT BoundingBox EMPTY>
<!ATTLIST BoundingBox
SRS CDATA #REQUIRED
minx CDATA #REQUIRED
miny CDATA #REQUIRED
maxx CDATA #REQUIRED
maxy CDATA #REQUIRED
resx CDATA #IMPLIED
resy CDATA #IMPLIED>

<!-- The Dimension element declares the _existence_ of a dimension. -->
<!ELEMENT Dimension EMPTY >
<!ATTLIST Dimension
name CDATA #REQUIRED
units CDATA #REQUIRED
unitSymbol CDATA #IMPLIED>

<!-- The Extent element indicates what _values_ along a dimension are valid. -->
<!ELEMENT Extent (#PCDATA) >
<!ATTLIST Extent
name CDATA #REQUIRED
default CDATA #IMPLIED
nearestValue (0 | 1) "0"
multipleValues (0 | 1) "0"
current (0 | 1) "0">

<!-- Attribution indicates the provider of a Layer or collection of Layers.
The provider's URL, descriptive title string, and/or logo image URL may be
supplied. Client applications may choose to display one or more of these
items. A format element indicates the MIME type of the logo image located at
LogoURL. The logo image's width and height assist client applications in
laying out space to display the logo. -->
<!ELEMENT Attribution ( Title?, OnlineResource?, LogoURL? )>
<!ELEMENT LogoURL (Format, OnlineResource) >
<!ATTLIST LogoURL
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED>

<!-- A Map Server may use zero or more MetadataURL elements to offer detailed,
standardized metadata about the data underneath a particular layer. The type
attribute indicates the standard to which the metadata complies. Two types
are defined at present: 'TC211' = ISO TC211 19115; 'FGDC' = FGDC CSDGM. The
format element indicates how the metadata is structured. -->
<!ELEMENT MetadataURL (Format, OnlineResource) >
<!ATTLIST MetadataURL
type ( TC211 | FGDC ) #REQUIRED>

<!-- A Map Server may use zero or more Identifier elements to list ID numbers
or labels defined by a particular Authority. For example, the Global Change
Master Directory (gcmd.gsfc.nasa.gov) defines a DIF_ID label for every
dataset. The authority name and explanatory URL are defined in a separate
AuthorityURL element, which may be defined once and inherited by subsidiary
layers. Identifiers themselves are not inherited. -->

<!ELEMENT AuthorityURL (OnlineResource) >
<!ATTLIST AuthorityURL
name NMTOKEN #REQUIRED >
<!ELEMENT Identifier (#PCDATA) >
<!ATTLIST Identifier
authority CDATA #REQUIRED >

<!-- A Map Server may use DataURL to offer more information about the data
underneath a particular layer. While the semantics are not well-defined, as
long as the results of an HTTP GET request against the DataURL are properly
MIME-typed, Viewer Clients and Cascading Map Servers can make use of this. -->
<!ELEMENT DataURL (Format, OnlineResource) >

<!-- A Map Server may use FeatureListURL to point to a list of the features
represented in a Layer. -->
<!ELEMENT FeatureListURL (Format, OnlineResource) >

<!-- A Style element lists the name by which a style is requested and a
human-readable title for pick lists, optionally (and ideally) provides a
human-readable description, and optionally gives a style URL. -->
<!ELEMENT Style ( Name, Title, Abstract?,
LegendURL*, StyleSheetURL?, StyleURL? ) >

<!-- A Map Server may use zero or more LegendURL elements to provide an
image(s) of a legend relevant to each Style of a Layer. The Format element
indicates the MIME type of the legend. Width and height attributes are
provided to assist client applications in laying out space to display the
legend. -->
<!ELEMENT LegendURL (Format, OnlineResource) >
<!ATTLIST LegendURL
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED>

<!-- StyleSheeetURL provides symbology information foreach Style of a Layer. -->
<!ELEMENT StyleSheetURL (Format, OnlineResource) >

<!-- A Map Server may use StyleURL to offer more information about the data or
symbology underlying a particular Style. While the semantics are not
well-defined, as long as the results of an HTTP GET request against the
StyleURL are properly MIME-typed, Viewer Clients and Cascading Map Servers can
make use of this. A possible use could be to allow a Map Server to provide
legend information. -->
<!ELEMENT StyleURL (Format, OnlineResource) >

<!-- Minimum and maximum scale hints for which it is appropriate to
display this layer. -->
<!ELEMENT ScaleHint EMPTY>
<!ATTLIST ScaleHint
min CDATA #REQUIRED
max CDATA #REQUIRED>

Příloha B

Exception_1_1_1.dtd je soubor popisující (omezující) XML chybného dotazu WMS serveru. Je zde uvedena jen verze pro WMS 1.1.1, protože v době psaní této práce byla nejrozšířenější. Zdrojem je webový odkaz [12].

Výpis souboru exception_1_1_1.dtd

<!ELEMENT ServiceExceptionReport (ServiceException*)>
<!ATTLIST ServiceExceptionReport version CDATA #FIXED "1.1.1">

<!ELEMENT ServiceException (#PCDATA)>
<!ATTLIST ServiceException code CDATA #IMPLIED>

Příloha C

Capabilities_1_1_1.xml je soubor příkladu XML dotazu GetCapabilities na WMS server. Je zde uvedena jen verze pro WMS 1.1.1, protože v době psaní této práce byla nejrozšířenější. Zdrojem je webový odkaz [12].

Výpis souboru capabilities_1_1_1.xml

<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!-- The DTD (Document Type Definition) given here must correspond to the version number declared in the WMT_MS_Capabilities element below. -->
<!DOCTYPE WMT_MS_Capabilities SYSTEM
"http://www.digitalearth.gov/wmt/xml/capabilities_1_1_1.dtd"
[
<!-- Vendor-specific elements are defined here if needed. -->
<!-- If not needed, just leave this EMPTY declaration. Do not
delete the declaration entirely. -->
<!ELEMENT VendorSpecificCapabilities EMPTY>
]> <!-- end of DOCTYPE declaration -->

<!-- Note: this XML is just an EXAMPLE that attempts to show all
required and optional elements for illustration. Consult the Web Map
Service 1.1.0 specification and the DTD for guidance on what to actually
include and what to leave out. -->

<!-- The version number listed in the WMT_MS_Capabilities element here must
correspond to the DTD declared above. See the WMT specification document for
how to respond when a client requests a version number not implemented by the
server. -->
<WMT_MS_Capabilities version="1.1.1" updateSequence="0">
<!-- Service Metadata -->
<Service>
<!-- The WMT-defined name for this type of service -->
<Name>OGC:WMS</Name>
<!-- Human-readable title for pick lists -->
<Title>Acme Corp. Map Server</Title>
<!-- Narrative description providing additional information -->
<Abstract>WMT Map Server maintained by Acme Corporation. Contact: webmaster@wmt.acme.com. High-quality maps showing roadrunner nests and possible ambush locations.</Abstract>
<KeywordList>
<Keyword>bird</Keyword>
<Keyword>roadrunner</Keyword>
<Keyword>ambush</Keyword>
</KeywordList>
<!-- Top-level web address of service or service provider. See also OnlineResource
elements under <DCPType>. -->
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://hostname/" />
<!-- Contact information -->
<ContactInformation>
<ContactPersonPrimary>
<ContactPerson>Jeff deLaBeaujardiere</ContactPerson>
<ContactOrganization>NASA</ContactOrganization>
</ContactPersonPrimary>
<ContactPosition>Computer Scientist</ContactPosition>
<ContactAddress>
<AddressType>postal</AddressType>
<Address>NASA Goddard Space Flight Center, Code 933</Address>
<City>Greenbelt</City>
<StateOrProvince>MD</StateOrProvince>
<PostCode>20771</PostCode>
<Country>USA</Country>
</ContactAddress>
<ContactVoiceTelephone>+1 301 286-1569</ContactVoiceTelephone>
<ContactFacsimileTelephone>+1 301 286-1777</ContactFacsimileTelephone>
<ContactElectronicMailAddress>delabeau@iniki.gsfc.nasa.gov</ContactElectronicMailAddress>
</ContactInformation>
<!-- Fees or access constraints imposed. -->
<Fees>none</Fees>
<AccessConstraints>none</AccessConstraints>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>application/vnd.ogc.wms_xml</Format>
<DCPType>
<HTTP>
<Get>
<!-- The URL here for invoking GetCapabilities using HTTP GET
is only a prefix to which a query string is appended. -->
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Get>
<Post>
<!-- The URL here for invoking GetCapabilities using HTTP POST
includes the complete address to which a query would be sent in
XML format. This is here for future expansion; no POST encoding
has yet been defined. -->
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Post>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/gif</Format>
<Format>image/png</Format>
<Format>image/jpeg</Format>
<DCPType>
<HTTP>
<Get>
<!-- The URL here for invoking GetCapabilities using HTTP GET
is only a prefix to which a query string is appended. -->
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Get>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>application/vnd.ogc.gml</Format>
<Format>text/plain</Format>
<Format>text/html</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Get>
</HTTP>
</DCPType>
</GetFeatureInfo>
<DescribeLayer><!--optional; used only by SLD-enabled WMS-->
<Format>application/vnd.ogc.gml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Get>
</HTTP>
</DCPType>
</DescribeLayer>
</Request>
<Exception>
<Format>application/vnd.ogc.se_xml</Format>
<Format>application/vnd.ogc.se_inimage</Format>
<Format>application/vnd.ogc.se_blank</Format>
</Exception>
<!-- Any text or markup is allowed here, as required to describe
vendor-specific capabilities. Please define elements and attributes
in the DOCTYPE declaration at the start of the document. -->
<!-- This example is empty because no VSPs were defined in preamble -->
<VendorSpecificCapabilities />
<!-- Place-holder for Styled Layer Descriptor (SLD)-enabled WMSes.
This element is absent for a basic WMS. -->
<UserDefinedSymbolization SupportSLD="1" UserLayer="1" UserStyle="1"
RemoteWFS="1" />
<Layer>
<Title>Acme Corp. Map Server</Title>
<SRS>EPSG:4326</SRS> <!-- all layers are available in at least this SRS -->
<AuthorityURL name="DIF_ID">
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://gcmd.gsfc.nasa.gov/difguide/whatisadif.html" />
</AuthorityURL>
<Layer>
<!-- This parent layer has a Name and can therefore be requested from a Map Server, yielding a map of all subsidiary layers. -->
<Name>ROADS_RIVERS</Name>
<Title>Roads and Rivers</Title>
<!-- See the spec to learn how some characteristics are inherited by
subsidiary layers. -->
<SRS>EPSG:26986</SRS> <!-- An additional SRS for this layer -->
<LatLonBoundingBox minx="-71.63" miny="41.75" maxx="-70.78" maxy="42.90"/>
<!-- The optional resx and resy attributes below indicate the X and Y spatial
resolution in the units of that SRS. -->
<!-- The EPSG:4326 BoundingBox duplicates some of the info in LatLonBoundingBox
and is therefore optional, but using it here allows the additional
resolution attributes. -->
<BoundingBox SRS="EPSG:4326"
minx="-71.63" miny="41.75" maxx="-70.78" maxy="42.90" resx="0.01" resy="0.01"/>
<BoundingBox SRS="EPSG:26986"
minx="189000" miny="834000" maxx="285000" maxy="962000" resx="1" resy="1" />
<!-- Optional Title, URL and logo image of data provider. -->
<Attribution>
<Title>State College University</Title>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://www.university.edu/" />
<LogoURL width="100" height="100">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/icons/logo.gif" />
</LogoURL>
</Attribution>
<!-- Identifier whose meaning is defined in an AuthorityURL element -->
<Identifier authority="DIF_ID">123456</Identifier>
<FeatureListURL>
<Format>application/vnd.ogc.se_xml"</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://www.university.edu/data/roads_rivers.gml" />
</FeatureListURL>
<Style>
<Name>USGS</Name>
<Title>USGS Topo Map Style</Title>
<Abstract>Features are shown in a style like that used in USGS topographic maps.</Abstract>
<!-- A picture of a legend for a Layer in this Style -->
<LegendURL width="72" height="72">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/legends/usgs.gif" />
</LegendURL>
<!-- An XSL stylesheet describing how GML feature data will rendered to create
a map of this layer. -->
<StyleSheetURL>
<Format>text/xsl</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/stylesheets/usgs.xsl" />
</StyleSheetURL>
</Style>
<ScaleHint min="4000" max="35000"></ScaleHint>
<Layer queryable="1">
<Name>ROADS_1M</Name>
<Title>Roads at 1:1M scale</Title>
<Abstract>Roads at a scale of 1 to 1 million.</Abstract>
<KeywordList>
<Keyword>road</Keyword>
<Keyword>transportation</Keyword>
<Keyword>atlas</Keyword>
</KeywordList>
<Identifier authority="DIF_ID">123456</Identifier>
<!-- Metadata specific to this particular layer. The same FGDC metadata is offered in two formats. -->
<MetadataURL type="FGDC">
<Format>text/plain</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/metadata/roads.txt" />
</MetadataURL>
<MetadataURL type="FGDC">
<Format>text/xml</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/metadata/roads.xml" />
</MetadataURL>
<!-- In addition to the Style specified in the parent Layer, this Layer is available in this style. -->
<Style>
<Name>ATLAS</Name>
<Title>Road atlas style</Title>
<Abstract>Roads are shown in a style like that used in a commercial road atlas.</Abstract>
<LegendURL width="72" height="72">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/legends/atlas.gif" />
</LegendURL>
</Style>
</Layer>
<Layer queryable="1">
<Name>RIVERS_1M</Name>
<Title>Rivers at 1:1M scale</Title>
<Abstract>Rivers at a scale of 1 to 1 million.</Abstract>
<KeywordList>
<Keyword>river</Keyword>
<Keyword>canal</Keyword>
<Keyword>waterway</Keyword>
</KeywordList>
</Layer>
</Layer>
<Layer queryable="1">
<Title>Weather Forecast Data</Title>
<SRS>EPSG:4326</SRS> <!-- harmless repetition of common SRS -->
<LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
<!-- These weather data are available daily from 1999-01-01 through
2000-08-22. -->
<Dimension name="time" units="ISO8601" />
<Extent name="time" default="2000-08-22">1999-01-01/2000-08-22/P1D</Extent>
<Layer>
<Name>Clouds</Name>
<Title>Forecast cloud cover</Title>
</Layer>
<Layer>
<Name>Temperature</Name>
<Title>Forecast temperature</Title>
</Layer>
<Layer>
<Name>Pressure</Name>
<Title>Forecast barometric pressure</Title>
<!-- Pressure is available at several elevations.
EPSG:5030 is WGS 84 ellipsoid, units in metres.
Pressure is also available at several times.
NOTE: first list all Dimension elements, then all Extent elements. -->
<Dimension name="time" units="ISO8601" />
<Dimension name="elevation" units="EPSG:5030" />
<Extent name="time" default="2000-08-22">1999-01-01/2000-08-22/P1D</Extent>
<Extent name="elevation" default="0" nearestValue="1">0,1000,3000,5000,10000</Extent>
</Layer>
</Layer>
<!-- Example of a layer which is a static map of fixed
size which the server cannot subset or make transparent -->
<Layer opaque="1" noSubsets="1" fixedWidth="512" fixedHeight="256">
<Name>ozone_image</Name>
<Title>Global ozone distribution (1992)</Title>
<LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
<Extent name="time" default="1992">1992</Extent>
</Layer>
<!-- Example of a layer which originated from another WMS and has been
"cascaded" by this WMS. -->
<Layer cascaded="1">
<Name>population</Name>
<Title>World population, annual</Title>
<LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
<Extent name="time" default="2000">1990/2000/P1Y</Extent>
</Layer>
</Layer>
</Capability>
</WMT_MS_Capabilities>

Příloha D

Soubor wms_list.sql je výsledkem exportu (dump) struktury databáze wms_list databázového systému MySQL. V této struktuře jsou uloženy metadata popisující WMS server.

Dump struktury databáze wms_list (MySQL)

-- phpMyAdmin SQL Dump
-- version 2.8.0.1
-- http://www.phpmyadmin.net
--
-- Počítač: localhost:3306
-- Vygenerováno: Středa 28. května 2007, 22:25
-- Verze MySQL: 5.0.19
-- Verze PHP: 5.1.2
--
-- Databáze: `wms_list`
--

-- --------------------------------------------------------

--
-- Struktura tabulky `wms_box`
--

CREATE TABLE `wms_box` (
`ID_box` int(10) unsigned NOT NULL auto_increment,
`ID_layer` int(10) unsigned NOT NULL,
`EPSG` varchar(255) collate latin2_czech_cs NOT NULL,
`Minx` varchar(255) collate latin2_czech_cs default NULL,
`Miny` varchar(255) collate latin2_czech_cs default NULL,
`Maxx` varchar(255) collate latin2_czech_cs default NULL,
`Maxy` varchar(255) collate latin2_czech_cs default NULL,
`Resx` varchar(255) collate latin2_czech_cs default NULL,
`Resy` varchar(255) collate latin2_czech_cs default NULL,
`SY_Include` datetime NOT NULL,
`SY_Reparier` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
`SY_Active` enum('1','0') collate latin2_czech_cs NOT NULL default '1',
PRIMARY KEY (`ID_box`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs;

-- --------------------------------------------------------

--
-- Struktura tabulky `wms_layer`
--

CREATE TABLE `wms_layer` (
`ID_layer` int(11) NOT NULL auto_increment,
`ID_server` int(10) unsigned NOT NULL,
`ID_box` text collate latin2_czech_cs COMMENT 'CSV - ;',
`ID_parent` varchar(255) collate latin2_czech_cs NOT NULL COMMENT 'CSV - HL(ID);HL(ID);HL(ID);atd',
`LAY_prop` text collate latin2_czech_cs NOT NULL COMMENT 'CSV - quer; casc; opaq; noSu; fiWi; fiHE',
`Name` text collate latin2_czech_cs NOT NULL,
`Title` text collate latin2_czech_cs,
`Abstract` text collate latin2_czech_cs,
`CRS` text collate latin2_czech_cs COMMENT 'CSV - ;',
`Keyworld` text collate latin2_czech_cs COMMENT 'CSV - ;',
`EX_GBBox` text collate latin2_czech_cs NOT NULL COMMENT 'CSV - W;N;E;S',
`Dimension` text collate latin2_czech_cs COMMENT 'CSV - name ; value',
`Scale` text collate latin2_czech_cs NOT NULL COMMENT 'CSV - min;max',
`Identi` text collate latin2_czech_cs NOT NULL COMMENT 'CSV - authority ; value',
`Atr_URL` text collate latin2_czech_cs NOT NULL,
`Atr_Title` text collate latin2_czech_cs NOT NULL,
`AuthURL` text collate latin2_czech_cs NOT NULL,
`FeatURL` text collate latin2_czech_cs NOT NULL,
`MetaURL` text collate latin2_czech_cs NOT NULL,
`LogoURL` text collate latin2_czech_cs NOT NULL,
`DataURL` text collate latin2_czech_cs NOT NULL,
`SY_Include` datetime NOT NULL,
`SY_Reparier` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
`SY_Active` enum('1','0') collate latin2_czech_cs NOT NULL default '1',
PRIMARY KEY (`ID_layer`),
FULLTEXT KEY `vyhledavani` (`Name`,`Title`,`Abstract`,`CRS`,`Keyworld`,`Atr_Title`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs;

-- --------------------------------------------------------

--
-- Struktura tabulky `wms_server`
--

CREATE TABLE `wms_server` (
`ID_server` int(11) NOT NULL auto_increment,
`Version` varchar(10) collate latin2_czech_cs NOT NULL,
`Name` text collate latin2_czech_cs NOT NULL,
`Title` text collate latin2_czech_cs,
`Abstract` text collate latin2_czech_cs,
`Keyword` text collate latin2_czech_cs COMMENT 'CSV - ;',
`OL_Resource` varchar(255) collate latin2_czech_cs NOT NULL,
`FP_ConPer` varchar(255) collate latin2_czech_cs default NULL,
`FP_ConOrg` varchar(255) collate latin2_czech_cs default NULL,
`FP_ConPos` text collate latin2_czech_cs,
`AD_Type` varchar(255) collate latin2_czech_cs default NULL,
`AD_Address` text collate latin2_czech_cs,
`AD_City` text collate latin2_czech_cs,
`AD_State` text collate latin2_czech_cs,
`AD_Post` varchar(255) collate latin2_czech_cs default NULL,
`AD_Country` varchar(255) collate latin2_czech_cs default NULL,
`CO_Telephone` varchar(255) collate latin2_czech_cs default NULL,
`CO_FTelephone` varchar(255) collate latin2_czech_cs default NULL,
`CO_Email` varchar(255) collate latin2_czech_cs default NULL,
`Fees` text collate latin2_czech_cs,
`Access` text collate latin2_czech_cs,
`LayerLimit` int(5) unsigned default NULL,
`MaxWidth` int(5) unsigned default NULL,
`MaxHeight` int(5) unsigned default NULL,
`EX_Format` text collate latin2_czech_cs COMMENT 'CSV = ;',
`GetCa_Format` text collate latin2_czech_cs COMMENT 'CSV - ;',
`GetCa_getURL` text collate latin2_czech_cs,
`GetMa_Format` text collate latin2_czech_cs COMMENT 'CSV - |',
`GetMa_getURL` text collate latin2_czech_cs,
`GetFI_Format` text collate latin2_czech_cs COMMENT 'CSV - ;',
`GetFI_getURL` text collate latin2_czech_cs,
`SY_ID_server_new` int(10) unsigned default NULL,
`SY_URL` varchar(255) collate latin2_czech_cs NOT NULL,
`SY_Name` int(10) unsigned NOT NULL,
`SY_Include` datetime NOT NULL,
`SY_Reparier` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
`SY_Active` enum('1','0') collate latin2_czech_cs NOT NULL default '1',
PRIMARY KEY (`ID_server`),
UNIQUE KEY `SY_ID_server_new` (`SY_ID_server_new`),
FULLTEXT KEY `vyhledavani` (`Version`,`Name`,`Title`,`Abstract`,`Keyword`,`FP_ConPer`,`FP_ConOrg`,`FP_ConPos`,`AD_Address`,`AD_City`,`AD_State`,`AD_Country`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs;

-- --------------------------------------------------------

--
-- Struktura tabulky `wms_style`
--

CREATE TABLE `wms_style` (
`ID_style` int(11) NOT NULL auto_increment,
`ID_layer` int(10) unsigned NOT NULL,
`Name` text collate latin2_czech_cs NOT NULL,
`Title` text collate latin2_czech_cs,
`Abstract` text collate latin2_czech_cs,
`LegeURL` text collate latin2_czech_cs,
`StyShURL` text collate latin2_czech_cs,
`StyleURL` text collate latin2_czech_cs,
`SY_Include` datetime NOT NULL,
`SY_Reparier` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
`SY_Active` enum('1','0') collate latin2_czech_cs NOT NULL default '1',
PRIMARY KEY (`ID_style`),
FULLTEXT KEY `vyhledavani` (`Name`,`Title`,`Abstract`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs;

Příloha E

Tanto příloha je příkladem článku informační sekce webového portálu. Popisuje význam EPSG, jeho historii a jeho použití.

Článek - informační sekce portálu

EPSG (European Petroleum Survey Group)

European Petroleum Survey Group (EPSG) existovala od roku 1986 do roku 2005. Jednalo se o vědeckou organizaci, která měla úzké vazby k evropskému naftovému průmyslu. Ta se skládala z odborníků pracujících v oblasti aplikované geodézie, mapování a kartografie související s ropným průmyslem.

logo OGP

Tato organizace spravovala sestavený a rozšířený EPSG Geodetic Parameter Set (dále jen EPSG). Jedná se o široce využívanou databázi zemských elipsoidů, geodetických datumů, zeměpisných a kartografických souřadnicových systémů, měrných jednotek, atd. V důsledku zániku organizace European Petroleum Survey Group převzala správu nad touto databází v roce 2005 nově vzniklá asociace The International Association of Oil & Gas producers (OGP), resp. její výbor Surveying and Positioning Committee.

Výbor zasedá dvakrát ročně a jeho členy jsou odborníci z členských společností OGP z oblasti mapování, kartografie, geodézie a managementu koordinace dat. Hlavními činnostmi tohoto výboru v rámci OGP je správa EPSG, vydávání směrnic (Guidance Notes) a správa a tvorba výměnných formátů se spoluprácí s jinými organizacemi.

Dnes již pod zkratkou EPSG rozumíme Geodetic Parameter Set (vlastní databázi), proto ji nezaměňujme s názvem zaniklé organizace EPSG. Data jsou zveřejňována přibližně třikrát až čtyřikrát za rok, a to ve formě relační databáze Microsoft Access a SQL skriptu pro import do databází (dump) MySQL, Oracle nebo PostgreSQL. Mohou existovat i jiné verze vydávané mezi těmito standardními. V současné době je platná verze č. 6.12 (ke dni 8. 2. 2007).

Každé kartografické zobrazení, resp. souřadnicový systém má dán jedinečný kód. Tento kód je celé nezáporné číslo vyjma nuly, které se nesmí opakovat. Například EPSG:4326 vyjadřuje standardní zeměpisnou projekci WGS84 o souřadnicích zeměpisné šířky a délky v celých stupních s Greenwichem jako nultým poledníkem.

Využití těchto dat je jednoznačně zřejmé, protože se jedná o celosvětovou databázi již dříve uvedených dat. Toto umožňuje a sjednocuje používání například souřadnicových systémů v GIS, web-aplikacích, celosvětových geografických projektech, standardizaci aj. Příkladem praktického užití je výměnný formát GeoTIFF pro georeferencované rastry, nebo aplikace pro Web Map Service (WMS). Pomocí WMS se přes HTTP protokol distribuují obrazová data (obrázky), které jsou ohraničeny souřadnicovým obdélníkem (boxem - jih, sever, východ, západ) v určitém EPSG (zobrazení) kódu.

Příloha F

Tato příloha je příkladem článku informační sekce webového portálu. Popisuje stav podpory WMS v krajských GIS ČR.

Článek - informační sekce portálu

Podpora Web Map Service (WMS) v GIS krajů ČR

S velkým rozvojem mapových serverů úzce souvisí rozvoj technologií, na jejímž principu servery pracují, či je jinak využívají. Mezi známé servery patří http://www.mapy.cz portálu www.seznam.cz. V oblasti státní správy a samosprávy jsou zapotřebí specifické mapové produkty pro rozhodování a součinnost orgánů.

Mezi přední mapový server státní správy patří http://geoportal.cenia.cz/ české informační agentury životního prostředí (CENIA). Snahou správců těchto portálů je využívat i nové technologie, jimiž WMS bezesporu je. Kterýkoliv uživatel si pak může do klienta (software umožňující prohlížení WMS serverů) připojit nejrůznější vrstvy nabízené mapovým serverem pokud přístup k těmto službám není zpoplatněn.

Dne 1. 1. 2000 vznikly vyšší územně samosprávní celky nazývané kraje. Celkem jich vzniklo 14 spolu s hlavním městem Prahou. Tyto kraje si vybudovaly v rozsahu svého území geografické informační systémy. Součástí těchto GIS se v mnohých krajích staly i volně přístupné mapové portály např. GIS Plzeňského kraje. Část těchto portálů pak zpřístupnila některé vrstvy pomocí WMS služby.

Jak uvádí následující tabulka, tak přístup k alespoň jedné vrstvě GIS pomocí WMS má 9 ze 14 krajů. S obsáhlostí a významem vrstev je už to jiné, protože zde naráží samosprávní orgány na autorský zákon.

Příloha G

Ukázka několika mapových kompozic vrstev WMS serverů (Náměsí Republiky v Plzni)

vrstva "Doprava" serveru HS RS
vrstva "Doprava" serveru HS RS



vrstva "Doprva" serveru HSRS a vrstva "ortofoto" serveru ÚHÚL
vrstva "Doprva" serveru HSRS a vrstva "ortofoto" serveru ÚHÚL



vrstva "Doprava" serveru HS RS a vrstva "VM2" mapserveru FSV, ČVUT
vrstva "Doprava" serveru HS RS a vrstva "VM2" mapserveru FSV, ČVUT



vrstva "Doprava" serveru HS RS a vrstva "Hlavní výkres po změně č. 278 Plzeň"
               GIS města Plzeň
vrstva "Doprava" serveru HS RS a vrstva "Hlavní výkres po změně č. 278 Plzeň" GIS města Plzeň

Příloha H

Přiložený kompaktní disk (CD) je nedílnou součástí této práce.

Obsah CD

Valid XHTML 1.1!          Valid CSS!