GISáček


Vytvoření grafického rozhraní pro komunikaci s uživateli metainformačního systému CAGI

Stanislav Marenčík
Institut ekonomiky a systémů řízení
VŠB – TU OSTRAVA - Hornicko Geologická fakulta
Třída 17. listopadu
708 33 Ostrava-Poruba
email: Stanislav.Marencik@seznam.cz

 

Abstrakt

Tato diplomová práce měla za cíl vytvoření aplikací, provádějící činnosti související s evidencí pokrytí prostorové složky dat. Úvod práce patří popisu grafických rozhraní vytvořených aplikací. Druhá část se již věnuje problematice programování. Je zde uveden způsob ukládání dat pomocí SŘBD, datový model aplikace, dále pak popsána použitá prostorová indexace. Další kapitoly se věnují problematice zobrazení geoprvků na obrazovce a následují kapitoly, popisující celkový běh aplikací.

Cíl práce

Cílem práce bylo vytvoření rozšiřujícího modulu Metainformačního systému CAGI s důrazem na snadnost použití běžnými uživateli. Metainformační systém byl založen na komunikaci HTML kódu na straně klienta s CGI programem na straně serveru. Pomocí této technologie je ukládána popisná složka metadat. Avšak jazyk HTML neposkytuje dostatečně výkonné nástroje (a to i přes možnou spolupráci s JavaScriptem) pro zadávání a prohlížení grafické složky dat. Tato diplomová práce má za úkol odstranit tento nedostatek volbou nové technologie.

Jelikož všechna data jsou ukládána do databáze, jedním z prvních úkolů mělo být vytvoření datového modelu. Datový model má umožňovat ukládání prostorové složky dat. S databází by mělo spolupracovat několik druhů klientských programů. V první řadě je to program pro zadávání plošného rozsahu jednotlivých datových sad. Uživatelé by měli mít možnost zadávat rozsah několika způsoby. A to vybráním připravených administrativních jednotek, určením souřadnic lomových bodů polygonu a nebo zadáním čísel mapových listů. Program by měl také umožňovat práci v režimu běžného prohlížení. V tomto případě není možno měnit plošné pokrytí, ale je možné si ho alespoň prohlédnout s využitím zobrazovacích operací (zvětšení/zmenšení a posun). Posledním požadavkem bylo umožnit vytváření prostorových dotazů na zadaná data.

Grafická rozhraní

Implementace graf. rozhraní pro zadávání (prohlížení) dat

V této kapitole bude popsáno grafické rozhraní mapového serveru, který byl vytvořen pro účel této diplomové práce. Bude to především pohled z hlediska uživatele. Diskutované, nebo použité algoritmy budou popsány v kapitole Implementace Mapového serveru CAGI.

Tato práce navazuje na Metainformační systém CAGI. Jeho součástí je modul – “Datové sady”, který provádí operace související s uložením metadat o datových sadách. Pro vyplnění je k dispozici formulář, jehož součástí je položka, týkající se plošného pokrytí datové sady. Aktivací této položky se spustí nadstavbová aplikace, která je již předmětem diplomové práce. Na obrázku č. 1 je možno vidět grafické rozhraní spuštěné aplikace.

Aplikace může běžet ve dvou režimech, které se na první pohled vůbec neliší. V režimu editace – je možno zadávat i plošný rozsah. A v režimu běžného prohlížení – nástroje pro zadávání jsou vypnuty, je možno se pouze volně pohybovat v mapě a detailně si prohlížet zadaná data, vytvořená v režimu editace.

Volitelné nástroje

V horní části vlevo je vidět sada ikon, představujících volitelné nástroje:

  • Výběr – tímto nástrojem je možno provádět výběr geoprvků, které definují výsledné plošné pokrytí. Vybraný geoprvek je zvýrazněn vybarvením žlutou barvou. Opětovné kliknutí na stejný geoprvek způsobuje jeho vypnutí a tím i vyjmutí ze seznamu geoprvků definujících zájmovou oblast. Tato volba je vypnuta v režimu běžného prohlížení.
  • Posun na střed – tento nástroj slouží k posunu mapy uvnitř aplikace. Kliknutí v mapě definuje bod, který se posléze zobrazí uprostřed mapy.
  • Zvětšení – zvětšuje měřítko zobrazované mapy. Operaci lze provést dvěma způsoby. Bodovým kliknutím - dojde k vystředění mapy na zadaný bod a měřítko se zvětší dvakrát, nebo definicí ohraničujícího obdélníku – obsah mapy uvnitř obdélníku se zvětší na celé mapové okno
  • Zmenšení - zmenšuje měřítko zobrazované mapy. Provedení operace analogické s předešlou operací.
  • Úplné zobrazení – měřítko a posunutí je zvoleno tak, aby celá mapová prezentace (ČR) zabírala plochu vymezenou mapovým oknem.
  • Zadávání uživatelem definovaných polygonů – po této volbě je možno vytvářet libovolné polygony. Zadání je možno provést dvěma způsoby. Postupným klikáním v mapě – body kliknutí v mapě tvoří sadu lomových bodů polygonu, nebo textovým zadáním – do textového pole se vepíší souřadnice lomových bodů polygonu. Po provedení operace se na mapové ploše zobrazí vytvořený polygon, zvýrazněný vybarvením žlutou barvou. Tato volba je vypnuta v režimu běžného prohlížení.

Mapová plocha aplikace

Mapovou plochu je možno vidět uprostřed aplikace. Je tvořena zobrazenými geoprvky. Na obrázku jsou vidět zobrazené administrativní jednotky – bývalé kraje. Jsou zde barevně odlišeny dva vybrané kraje, které byly vybrány v předešlém sezení: Severočeský a Východočeský kraj. Pokud by tato aplikace se vztahem k určité datové sadě byla otevřena poprvé, žádný z krajů (nebo jiných administrativních jednotek) by nebyl vybrán. Uživatel má možnost vybrat zvolenou administrativní jednotku jednoduchým kliknutím na její příslušnou reprezentaci zobrazenou na obrazovce monitoru. Tento výběr je považován za specifikaci plošného pokrytí, které se váže k určité datové sadě v Metainformačním systému CAGI. Je možno provádět takový počet výběrů, kolik geoprvků je zobrazeno na obrazovce a nebo kolik je naimportovaných mapových listů. Nemusí se vůbec jednat o sousední polygony, lze tedy hovořit o specifikaci regionu. Geoprvky je možno přepnout do stavu “nevybraný” pomocí opětovného kliknutí na stejný geoprvek.

Celková specifikace plošného pokrytí nemusí být složena pouze z předdefinovaných administrativních jednotek, ale je možno si vytvořit vlastní. Firmy, tvořící datové sady, nemusí totiž vždy respektovat hranice administrativních jednotek. Zadání a rozsah jejich práce může být dán například geografickými, nebo hydrologickými podmínkami na území ČR. Proto bylo nutno vytvořit nástroj umožňující definici pomocí sady libovolně zvolených lomových bodů polygonu. Zadání probíhá pomocí postupného klikání v mapě, nebo textovým zadáním ve vymezeném textovém poli. Datový model vyžaduje určitou korektnost zadání a proto bylo nutno stanovit dvě omezující podmínky:

  1. Souřadnice všech bodů musí ležet uvnitř pomyslného čtverce, ve kterém je umístěna ČR.
  2. Jednotlivé úsečky definovaného polygonu se nesmí křížit.

Porušení jedné z těchto podmínek je uživateli oznámeno ve formě chybového hlášení. Uzavření polygonu se provede pomocí rychlého dvojitého kliknutí. Následuje vykreslení polygonu a dialog s možností specifikace názvu takto vytvořeného areálu, nebo jeho smazání. Dialog je možné vyvolat opětovným kliknutím na uživatelem definovaný polygon.

Identifikace geoprvků zobrazených v mapě

Identifikací zobrazených geoprvků je zde myšleno zobrazení názvu areálu, kterým může být některá předdefinovaná administrativní jednotka, pro okresy např. okres Bruntál, nebo uživatelem definovaný polygon. Zobrazení názvu geoprvku je nezávislé na zvoleném nástroji a dochází k němu vždy při poloze kursoru myši nad daným geoprvkem.

Souřadnicový systém

Vpravo od sady nástrojů je umístěna informace o souřadnicích. Souřadnice jsou zobrazovány v upraveném systému JTSK tak, že obě osy kartézského souřadného systému jsou navzájem vyměněny a navíc jejich hodnoty jsou záporně ohodnoceny. Mění se s pohybem kurzoru nad mapovou plochou.

Seznam vrstev

Vlevo pod sadou nástrojů je umístěn seznam vrstev. Každá položka z tohoto seznamu se skládá ze tří prvků. Vlevo je otevřeným okem znázorněna současná viditelnost vrstvy a přeškrtnutím skrytí vrstvy. Potom následuje textová informace o typu administrativní jednotky (např. Kraje) a za ní je rádiové tlačítko, jenž informuje aplikaci, která z vrstev se bude používat k zadávání plošného rozsahu, nebo k zobrazení atributové části. Viditelnost jednotlivých vrstev je zapínána automaticky při dosažení určitého měřítka.

Textové zadání plošného pokrytí

Pod seznamem vrstev je umístěna textová plocha, která má dvojí využití. V případě zapnutí speciální vrstvy, kterou je klad mapových listů (na obrázku vrstva Kltm50), dojde k aktivaci a k výzvě správného vyplnění textové plochy. Do textové plochy se vepíší označení mapových listů dle příkladu, zobrazeného ve stavové ploše. Po vyplnění a zmáčknutí tlačítka “vložit” se objeví na mapové ploše požadované geoprvky polygonového charakteru. Druhé použití textové plochy slouží také k zadávání pokrytí. Tentokrát při aktivaci uživatelské vrstvy, která umožňuje vkládat uživatelem definované polygony, viz výše.

Stavový řádek a ukončení aplikace

Spodní část aplikace tvoří stavový řádek a tlačítko dokončit. Ve stavovém řádku jsou dvě různá místa pro zobrazování informativních textů. Na levé straně je to především zobrazení atributu geoprvku, nad nímž se nachází kurzor myši. Do stavového prostoru umístěného vpravo se zobrazují buď instrukce o provedení operace, nebo chybová hlášení po neúspěšné operaci. Po skončení veškeré práce v režimu editace je možno stisknout tlačítko “Dokončit”, které uloží všechny vybrané geoprvky a předá běh aplikaci Metainformační systém CAGI. V režimu běžného prohlížení je toto tlačítko nahrazeno tlačítkem “Zpět”, které způsobí návrat do Metainformačního systému CAGI bez jakéhokoliv ukládání.

 

Implementace graf. rozhraní pro vyhledání dat

Jedná se o jednoduchý rastrový obrázek, ve kterém je znázorněna mapa ČR, viz. obr. č. 2. Tento obrázek je zakomponován do HTML stránky prostřednictvím formuláře. V případě bodového kliknutí do obrázku dojde k vyhledání datových sad lokalizovaných v místě kliknutí.

Další informace, týkající se implementace vyhledávacích algoritmů spolupracujících s klikací mapou, je možno nalézt v kapitole Implementace Mapového serveru CAGI.

 

Implementace Mapového serveru CAGI

Ukládání prostorové složky do SŘBD

Koncepce ukládání do SŘBD

Koncepce ukládání do SŘBD vychází z řešení Metainformačního systému CAGI. Ten je založen na spolupráci HTML kódu se souborem CGI programů, vytvořených v programovacím jazyce PHP3. PHP3 obsahuje sadu nástrojů pro spolupráci se SŘBD. Uživatel u lokálního počítače po vyplnění patřičných formulářů stiskl tlačítko odeslání, obsah těchto formulářů byl odeslán na stranu serveru příslušnému PHP3 skriptu, ten provedl zápis nebo čtení nad SŘBD a vygeneroval novou HTML stránku. Uživatel tuto “výměnu” HTML stránek většinou vůbec nepostřehne a zdá se mu, že pracuje stále se stejnou stránkou, viz obr. č. 3

Jedním z PHP3 skriptů byl knihovní skript s názvem include.php3, obsahující mimo jiné základní sadu nástrojů pro ověření uživatelova přístupu a práce s databází.

Tento mechanismus spolupráce HTML formuláře se SŘBD byl také použit při řešení této diplomové práce, a sice při implementaci spojení mezi grafickým rozhraním Javy a SŘBD. Řeší se tak nejen problematika komunikace Javy se SŘBD, naznačená výše, ale zároveň je umožněn stejný přístup k datům v databázi, jako v Metainformačním systému CAGI, viz obr. 4. S výhodou je také použit zmíněný skript include.php3, zaručující jednotný přístup k databázi včetně ověření oprávnění.

 

Datový model

Datový model řeší uložení převážně prostorové části dat. Jedná se o jednotky administrativního členění, např. kraje, okresy, obce a uživatelem definované polygony. Data z Metainformačního systému CAGI, konkrétně metadata o datových sadách (DS), tak mohou být rozšířeny o prostorovou složku dat.

Při tvorbě datového modelu bylo nutno dodržovat určitá omezení a zároveň požadavky. Tím hlavním je nezávislost na systému řízení báze dat. Nelze tedy využít žádný ze specializovaných SŘBD umožňujících uložení prostorové složky, jako je např. Oracle SDO (Spatial Data Option). Datový model byl také přizpůsoben nutnosti rychlého nalezení geografických dat v SŘBD. K pojmu “rychlé nalezení” se úzce váže problematika tzv. prostorové indexace, viz níže. Datový model také řeší otázku historie dat. Při změně hranice určité administrativní jednotky nedojde nikdy ke změně fyzického uložení lomových bodů plošného pokrytí DS, ledaže by vlastník DS provedl její aktualizaci. Datový model počítá s uchováním hranic starších administrativních jednotek, ale zároveň umožňuje zadávání pomocí nových jednotek.

Struktura navrženého relačního datového modelu je vidět na následujícím obrázku:

Podívejme se nyní na jednotlivé relace:

  • První z nich je relace Layers. Náplň této relace by se dala přirovnat adresáři na disku, který obsahuje názvy vrstev. Volba názvu vrstvy odpovídá administrativní jednotce, např. “Okresy (1992)”. Záznamy této relace jednoznačně definují, s jakými vrstvami se bude pracovat pomocí identifikátorové položky. Byla zvolena konvence, která považuje implicitně záznam s identifikátorem č. 1 jako tzv. uživatelskou vrstvu. Uživatel může do takové vrstvy přidávat libovolné polygony pokud mu nevyhovuje zadání pomocí připravených administrativních jednotek. Další položky této relace mají spíše informativní charakter.
  • Relace Features obsahuje názvy jednotlivých geoprvků (polygonového charakteru), vztažených k určité vrstvě pomocí identifikátoru Lay_ID, např. pro okresy “Kutná Hora”. Kromě vlastního identifikátoru Feat_ID mají ostatní položky spíše informativní charakter.
  • Relace Points obsahuje lokalizaci jednotlivých lomových bodů polygonu, vztažených k určitému geoprvku pomocí identifikátoru Feat_ID. Jedná se o souřadnice upraveného systému S-JTSK, ve kterém je převráceno pořadí záporně ohodnocených souřadnic. Tato relace má také vlastní identifikátor Point_ID kvůli zajištění správného pořadí při načítání jednotlivých bodů. Položka Kind rozlišuje mezi vnějším polygonem a vnitřní děrou. Přestože dekompozice na jednotlivé relace byla volena tak, aby byla splněna první, druhá a třetí normální forma, v tomto případě byla 1. NF porušena. Odstranění tohoto nedostatku by vyžadovalo další dekompozici relace Points a ta by příliš zatěžovala systém když uvážíme, že každá realizace propojení dvou tabulek je časově náročná. V tomto případě bylo porušení oprávněné.
  • Relace Mortons obsahuje sadu Mortonových klíčů pro jednotlivé geoprvky. Propojení s relací Features opět zajišťuje identifikátor Feat_ID. Další položky obsahují uložení Mortonových klíčů.
  • DS_Features je referenční tabulka, která realizuje spojení N:M mezi datovými sadami Metainformačního systému CAGI a zadání plošného pokrytí, které je náplní této práce.

 

Prostorová indexace

Prostorová indexace slouží k urychlení nalezení geoprvků na základě zvolených souřadnic. Její implementace v SŘBD je naprosto nezbytná, protože není možno vyhledávat geoprvky takovým způsobem, že se načtou všechny geoprvky ze SŘBD a teprve potom se programově rozhodne, které geoprvky se využijí a které ne. Bylo by zbytečné načítat geoprvky, které leží mimo zobrazovací okno. Tuto techniku by bylo možné si dovolit pouze u lokální aplikace, ale nikoliv u aplikace, která k přenosu dat používá relativně pomalou počítačovou síť. Proto byla zvolena taková technika, která uchovává v programu pouze takové geoprvky, které jsou, nebo mají být zobrazeny na obrazovce. Tak se minimalizuje objem přenášených dat mezi klientem a serverem a zvýší se také rychlost aplikace.

Volba SŘBD, jakožto prostředku pro ukládání prostorové části dat, má mnoho výhod. Jednou z nich je nezávislost dat na aplikaci. V případě že funkčnost aplikace přestane být postačující z důvodů nových nároků, požadavků apod., data v SŘBD zůstávají, mohou nadále spolupracovat s novou aplikací. Nebo naopak je možno zaměnit určitý SŘBD za jiný. Stačí pouze vhodnou metodou konvertovat data ze starého systému do nového. Přístup k datům probíhá dál pomocí standardizovaného rozhraní SQL. Toto rozhraní umožňuje vytváření datových struktur v SŘBD, ukládání dat, mazání, nebo jejich aktualizaci a v neposlední řadě také dotazování. Jako každé jiné rozhraní má i SQL nevýhodu v omezení možnosti rozšíření množství jeho funkcí, které je nutné kvůli kompatibilitě s jinými SŘBD založených na bázi SQL. Z těchto důvodů je volba druhu prostorové indexace závislá na funkcích, definovaných v SQL.

Prostorová indexace pomocí čtyřstromu (Quad-Tree)

Prostorová indexace založená na Quad-Tree je soubor různě efektivních metod, sloužících k indexaci geoprostorových dat. Tyto metody se navzájem liší způsobem ukládání do datových struktur, způsobem vyhledávání a typem ukládaných geoprvků. Jednotlivé metody Quad-Tree jsou poměrně složité a k jejich implementaci jsou potřeba složitější nástroje – programovací jazyky. Programovací jazyk Java byl zvolen pro implementaci aplikace běžící na straně klienta. Avšak rozhodující proces musí proběhnout na straně serveru v SŘBD, který má omezenou sadu nástrojů. Složitější metody Quad-Tree často používají rozhodující proces typu: pokud něco potom udělej_toto jinak tamto. SŘBD založené na ANSI SQL nepodporují takovéto datové struktury. Je možno namítnout, že lze tyto podmíněné skoky implementovat v příslušném PHP3 skriptu, který se SŘBD komunikuje na straně serveru. Situace by vypadala asi takto: PHP3 skript spustí SQL dotaz, pomocí kterého dojde ke stažení určitých dat ze SŘBD. PHP3 program pokračuje další zpracovávanou instrukcí, např. :

pokud (stažená_data=něco)

potom použij_stažená_data_pro_nový_SQL_dotaz_typu_1

jinak

použij_stažená_data_pro_nový_SQL_dotaz_typu_2.

Na základě této podmínky dojde k provedení nového SQL dotazu. Počet těchto SQL dotazů může přibývat se vzrůstajícím množstvím geoprostorových dat v databázi. Je zřejmé, že takové řešení by příliš zpomalovalo běh celé aplikace. Vyhledání geoprvku(ů) v SŘBD by mělo proběhnout pomocí jediného SQL dotazu. Tomu také odpovídá volba metody Quad-Tree, která musí být poměrně jednoduchá.

Zvolená metoda Region Quad-Tree (dále jenom Quad-Tree) je poměrně jednoduchou datovou strukturou, která je snadno uložitelná a dotazovatelná v SŘBD. Byla zvolena jako metoda prostorové indexace pro účel této diplomové práce. Prostorová datová struktura Quad-Tree je určena pro dvourozměrný prostor P, který se dělí rekurzivně vždy na 4 podprostory. Ty se značí tradičně SZ, JV, JZ a SV. Všechny tyto čtverce mají stejnou velikost. Výchozí (kořenový) čtverec má takové souřadnice rohových bodů, které pokrývají celou zpracovávanou oblast. Maximální počet úrovní dekompozice je předem zvolená konstanta, omezující počet dekompozicí. Postupná dekompozice začíná od výchozího čtverce a rekurzívně se provede tolikrát, kolik je stanoveno v konstantě maximální počet úrovní dekompozice. Nejmenší, dále již nedělitelný čtverec, můžeme označit přídavným jménem jednotkový. Dekompozicí vzniká určitá posloupnost čtverců, neboli větev hierarchie označená např. “SV, JV, JZ, SV” (principiálně se sice jedná o tzv. Mortonův klíč, ale tímto termínem bude chápán zápis v jiném tvaru). První člen posloupnosti je výchozí čtverec a poslední můžeme nazvat konečný. Konečný čtverec může být při předčasném ukončení dekompozice větší než jednotkový. Jeho poloha je považována za jednu z ploch, reprezentujících zpracovávaný polygon. Algoritmus tvorby hierarchie s výsledným konečným čtvercem nad zpracovávaným polygonem začíná testováním pozice polygonu vůči aktuálnímu (zpočátku je jím výchozí) čtverci. Výsledkem testu je jeden ze tří případů:

  • Čtverec je celý mimo polygon – v takovém případě se již aktuální čtverec dále nedekomponuje a testování probíhá o úroveň výš ve vzniklé hierarchii
  • Čtverec částečně zasahuje do polygonu – pokud se nejedná o jednotkový čtverec, tak se provede další dekompozice a celý proces se opakuje. V opačném případě je do příslušné datové struktury uložena aktuální větev hierarchie a běh programu se předá o úroveň výš

  • Čtverec je celý obsažen v polygonu – v každém případě je do příslušné datové struktury uložena aktuální větev hierarchie. Pokud se nejedná o jednotkový čtverec, musí být větev hierarchie zakončena zvláštní značkou, označující předčasné ukončení dekompozice. Dále se běh programu předá o úroveň výš

Na následujícím obrázku je vidět dělení čtverců nad zpracovávaným polygonem při stanoveném maximálním počtu úrovní 3. Konečné čtverce jsou barevně odlišeny.

Jak již bylo zmíněno výše, důležitým předpokladem zvolené prostorové datové struktury je dotazovatelnost na geoprvky (v našem případě polygony) v SŘBD. Jednotlivé čtverce byly v úvodu této kapitoly označeny zkratkami světových stran a jejich sada tvořila větev hierarchie, reprezentující určitou část polygonu. Takto zvolené označení ještě není příliš vhodné kvůli svému textovému charakteru a nedostatečné rozlišenosti na osy X, Y kartézského souřadného systému. Osové rozlišení je základním předpokladem pro vyhledání v databázi. Je zjevné, že označení západ a východ, reprezentuje polohu na ose X a tyto dva stavy budou dále značeny číslicemi 1 a 2. Analogicky pro osu Y, kde jihu odpovídá číslice 1 a severu 2.

Sada čtverců, tvořící větev hierarchie, bude dále označovaná posloupností číslic pro každou osu a budou tvořit číslo pro osu X a Y. Čísla budou nazývána Mortonovými klíči pro osu X, nebo Y. Např. posloupnost “SV, JV, JZ, SV” bude převedena do následujících tvarů:

Počet číslic tvořící MK je roven maximálnímu počtu úrovní dekompozice. Jako značka, označující předčasné ukončení dekompozice, byla zvolena číslice 0. Vpravo od ní nesmí být jiná číslice než případné další nuly. Např. číslo 2012 není platné, ale 2000 již ano. Na obrázku č. 7 je vidět označení konečných čtverců Mortonovými klíči.

Nalezení geoprvku v mapě

Touto operací je míněno nalezení geoprvku v datových strukturách programu na základě vstupních souřadnic X, Y. Operace nalezení geoprvku v mapě probíhá ve dvou případech a to vždy, když se nalézá kurzor uvnitř mapového okna. Buď při bodovém kliknutí, kdy se má vybrat (zrušit výběr) polygon ve kterém došlo ke kliknutí, nebo při pouhé změně polohy kurzoru myši, kdy se má zobrazit název areálu ve kterém se kurzor nalézá.

Při požadavku nalezení polygonu se provedou následující kroky:

  1. Obrazovková souřadnice kurzoru myši se přepočte na upravené souřadnice S-JTSK
  2. Je nutno nalézt zvolený polygon v datových strukturách programu. Provádí se testy, zda-li souřadnice kliknutí leží uvnitř některého zobrazeného polygonu. Pokud ano, procedura předčasně končí, nemusí se již testovat další geoprvky a následuje další krok
  3. Dojde k požadované změně, týkající se geoprvku. A to k vybrání geoprvku, nebo k zobrazení názvu areálu geoprvku.

Ukončení práce a ukládání dat

Při ukončení práce v režimu běžného prohlížení zadaných geoprvků nedochází k ukládání dat, pouze se předá běh Metainformačnímu systému CAGI. V editačním módu je tomu jinak. Veškeré provedené změny je třeba uložit do SŘBD na stranu serveru. Data z případného předešlého sezení jsou nejprve smazána a všechna data jsou do databáze ukládána znovu. Je nutno rozlišit dva druhy ukládání geoprvku:

  1. Ukládání předdefinovaných geoprvků – ukládají se pouze jednotlivé identifikátory geoprvků. Souřadnice lomových bodů se serveru zasílat nemusí, protože SŘBD je již obsahuje.
  2. Ukládání uživatelem definovaných geoprvků – ukládají se názvy geografických areálů spolu se souřadnicemi lomových bodů. Identifikátory se na stranu serveru nezasílají, protože buď ještě nejsou známy (ty jsou získány až na straně serveru při běhu příslušného PHP3 programu), nebo známi jsou a to z předešlého sezení, ale stejně jsou ignorovány a souřadnice takovýchto lomových bodů spolu s názvy areálů jsou zasílány serveru znovu. Spolu se souřadnicemi jsou zasílány také vygenerované Mortonovi klíče.

 

Aplikace pro zadávání a prohlížení prostorových dat (shrnutí)

Tento článek tvoří ucelený přehled navzájem spolupracujících algoritmů tvořících funkční celek. Jednotlivé algoritmy byly popsány výše.

Aplikace může pracovat jak v režimu zadávání, tak i v režimu běžného prohlížení. Po jejím spuštění dochází nejprve k načítání dat z databáze. Načítají se především vrstvy(a), které mají být viděny po celou dobu spuštění aplikace. Načítání se provádí způsobem popsaným výše, tedy předáním parametrů PHP3 skriptu na stranu serveru. V tuto chvíli se předává hlavně identifikátor požadované vrstvy a skript PHP3 vrací po komunikaci s databází geoprvky z určené vrstvy.

Po načtení prvotních dat začínají hrát důležitou roli vzorce pro transformaci souřadnic načtených dat na obrazovkové souřadnice a načtené vrstvy mohou být zobrazeny. Parametry zobrazení tvoří reálná souřadnice levého spodního rohu (má vliv na posunutí výřezu mapy) a rozlišení (má vliv na zvětšení). Uživatel mění tyto parametry pomocí operací zvětšení/zmenšení, posun na střed a úplné zobrazení může se tak volně pohybovat po mapě. V případě takového zvětšení mapy, kdy reálná vzdálenost hrany okna překročí určitou mez (je možno ji nastavit v databázi), může dojít k načtení podrobnější vrstvy. Načtení probíhá opět ve spolupráci s PHP3 skriptem. Tentokrát jsou mu zasílány i tzv. Mortonovi klíče pro rohové body nového mapového výřezu. Klientovi jsou potom zasílány jenom takové geoprvky, které do okna aplikace alespoň částečně zasahují.

V režimu zadávání má uživatel možnost provádět bodový výběr požadovaných geoprvků polygonového charakteru. Velkou roli zde hraje operace nalezení geoprvku v určeném místě kliknutí. Další možností je definovat vlastní polygony, jsou zde použity pouze jednoduché zobrazovací operace. Třetí možností je definice mapových listů pokrývajících zadávanou oblast.

Důležité jsou také algoritmy zobrazení informativních textů. Asi nejdůležitějším je zobrazení polohy kurzoru v upravených souřadnicích systému JTSK. I zde je použita transformační formule, tentokrát ovšem v inverzním tvaru pro převod obrazovkových souřadnic na reálné. Dalším textovým zobrazením je informace o poloze kurzoru myši nad areálem. Každou sekundu se tak řeší operace nalezení geoprvku a následně vypsání nalezeného názvu areálu. Kromě toho jsou do programu zabudovány nápovědy pro jednotlivé nástroje.

Poslední operací v programu je jeho ukončení. Viz také Implementace grafického rozhraní pro zadávání (prohlížení) dat.

 

Aplikace pro provádění prostorových dotazů (shrnutí)

Po uživatelově kliknutí do rastrového obrázku jsou na stranu serveru odesílány informace o místě kliknutí. Na jejich základě jsou spočítány tzv. Mortonovi klíče a proveden dotaz do databáze, viz. algoritmy výše. Výsledkem jsou identifikátory datových sad, které se nalézají v místě kliknutí. Viz také Implementace grafického rozhraní pro vyhledání dat.

Závěr

Podařilo se vytvořit požadované aplikace. Dotazovací aplikace umožňuje provádět prostorové dotazy. Jejich výsledkem je seznam nalezených datových sad ze zadané oblasti. Aplikace Mapový server na druhou stranu umožňuje zadávat plošný rozsah pomocí několika metod. Je možno ji použít pro podrobnější prohlížení zadaných dat nejširší veřejností.

Jednou z nevýhod je malá rychlost spouštění Mapového serveru. Do budoucna je třeba hledat nová řešení odstraňující, nebo eliminující tento nedostatek.


Copyright (C) VŠB - TU Ostrava, Institut geoinformatiky, 2001-3. Všechna práva vyhrazena. 
V případě, dotazů, komentářů, připomínek kontaktujte www-gis.hgf@vsb.cz
Tato stránka byla naposledy aktualizována: 29.03.2006 16:16
Stránky jsou optimalizovány pro Microsoft Internet Explorer v. 5.0 a vyšší.
Jsou vytvářeny v programovém prostředí FrontPage 2003.

NAVRCHOLU.cz