PRAKTICKÁ CVIČENÍ

 

Jan Růžička

 

Vysoká škola báňská - Technická univerzita Ostrava

Hornicko geologická fakulta

Ostrava 2003

 

 

 

 

RYCHLÝ NÁHLED DO PROBLEMATIKY MODULU PRAKTICKÁ CVIČENÍ

 
 

Kapitola UMN Map Server je zaměřena na praktické zvládnutí práce s volně dostupným produktem MapServer z University of Minesota. V rámci tohoto cvičení bude prezentován celý postup od instalace až po programování účelové aplikace.

Kapitola JShape je zaměřena na praktické zvládnutí práce s volně dostupným produktem JShape od společnosti JShape. Cvičení bude zaměřeno na vytvoření mapové kompozice a její zpřístupnění v prostředí Internetu. Okrajově bude zmíněna možnost programování.

Rychlý náhled

ÚVODEM MODULU PRAKTICKÁ CVIČENÍ

Cvičení je určeno vám, kteří jste již prostudovali možnosti publikace prostorových dat v prostředí Internetu, znáte základní produkty pro publikování a ovládáte vývoj Internetových aplikací s využitím jazyků HTML, XML a PHP.

Text je koncipován jako průvodce celým procesem instalace Mapového serveru, vytvoření mapové kompozice, a prezentace mapové kompozice v prostředí Internetu. V případě UMN MapServer je rovněž popsán vývoj aplikací s využitím tohoto nástroje.

Text je doplněn obrázky, které reprezentují výstupy z mapového serveru a kódem, který vede k takovému výsledku.

Při studiu je vhodné postupovat následujícím způsobem:

a)      Přečíst si informace o kroku v postupu tvorby prezentace prostorových dat

b)      Zkusit na svém počítači tento krok provést.

a.       Pokud je výsledek stejný jako v případě uvedeném na obrázku, pak můžete pokračovat dalším krokem.

b.      Pokud je výsledek jiný, je potřeba zkontrolovat zda vámi zapsaný kód je naprosto shodný s kódem uvedeným. Pokud tomu tak není, upravte kód a zkuste znovu. Pokud jsou kódy shodné a výsledek jiný postupujte podle bodu c)

c)      Pokud je výsledek jiný a kód stejný

a.       Zkontrolujte zda máte datové soubory na předepsaných místech a zkuste znovu. Pokud je pořád výsledek jiný postupujte podle bodu d)

d)      Kód i datové soubory jsou v pořádku

a.       Poproste kolegu (přítele) v práci o zkontrolování. Pokud je stále chyba postupujte podle bodu e)

e)      Kód i datové soubory jsou v pořádku i po zkontrolování kolegou

a.       Pokud je výstupem chybové hlášení podívejte se na odstranění tohoto chybového hlášení, které je uvedeno v rámci tohoto studijního materiálu. Pokud v tomto materiálu dané chybové hlášení nenajdete. Podívejte se do on-line dokumentace na stránkách a do diskusního fóra na stránkách produktu a stránkách tohoto kurzu. Pokud ani tam nenajdete řešení vašeho problému postupujte podle bodu f)

b.      Pokud je výstup jiný než na obrázku, ale výstupem není chybové hlášení postupujte podle bodu f)

f)      Kontaktujte vám přiděleného tutora kurzu

 

 

CÍL MODULU CVIČENÍ S MAPOVÝMI SERVERY

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TOHOTO MODULU

Budete umět:

  • Vybudovat prezentaci prostorových dat s využitím UMN MapServer.
  • Vybudovat prezentaci prostorových dat s využitím JShape.
  • Programovat aplikace pro publikování prostorových dat v prostředí Internetu s využitím UMN MapServer.

Budete umět

   

Získáte:

  • Znalosti o fungování produktů UMN MapServer a JShape.
  • Znalosti o základních možnostech vývoje aplikací s využitím UMN MapServer.

Získáte

   

 

 

ČAS POTŘEBNÝ KE STUDIU

 

Toto studium je výrazně závislé na konkrétním operačním systému, který bude využit a jeho konfiguraci. Při cvičení může docházet k problémům, které budou vyžadovat mnoho času při řešení. Při hladkém průběhu bez neobvyklých komplikací (které však mohou nastat) by délka studia tohoto modulu neměla přesáhnout 12 hodin.

 
2

1 UMN MAP SERVER

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY UMN MAP SERVER

 
 

Kapitola UMN Map Server je zaměřena na praktické zvládnutí práce s volně dostupným produktem MapServer z University of Minesota. V rámci tohoto cvičení bude prezentován celý postup od instalace až po programování účelové aplikace.

Instalace bude rozdělena na instalaci CGI aplikace a PHP modulu. Budou popsána možná chybová hlášení a odstranění chyb.

Hlavní část je věnována postupu tvorby mapové kompozice od definování jednotlivých částí až po jejich modifikaci (parametrizaci)

Poslední část je věnována programování aplikace s využitím UMN MapServer PHP Modul.

Rychlý náhled

 

CÍLE KAPITOLY UMN MAP SERVER

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

· Vybudovat prezentaci prostorových dat s využitím UMN MapServer.

· Programovat aplikace pro publikování prostorových dat v prostředí Internetu s využitím UMN MapServer.

Budete umět

   

Získáte:

· Znalosti o fungování produktů UMN MapServer.

· Znalosti o základních možnostech vývoje aplikací s využitím UMN MapServer.

Získáte

   

 

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 360 minut.

 

 

 

KLÍČOVÁ SLOVA KAPITOLY UMN MAP SERVER

 
 

MapServer, University of Minesota, UMN, UMN MapServer PHP Modul, PHP, Mapová kompozice.

Klíčová slova

 

PRŮVODCE STUDIEM 1

 

Zaměřte se na:

  • Korektní nainstalování produktu
  • Vytvoření jednoduché kompozice a její publikování
 

3

1.1 Před instalací

Pro instalaci musíte mít práva instalovat programy na svůj počítač. Pokud tato práva nemáte, kontaktujte svého administrátora.

Pro instalaci UMN MapServer musíte mít korektně nainstalován WWW server a protokol TCP/IP. Pokud nemáte nainstalováno kontaktujte svého administrátora.

Příprava

 

4

1.2 Instalace Minesota Map Server - CGI aplikace

CGI aplikaci je možné stáhnout z: http://mapserver.gis.umn.edu. Pro nás se jedná o zip soubor mapserver-3.6.3-win32-php4.2.3-libwww-ecw.zip, který je umístěn na doprovodném CD v adresáři ms/MapServer/.

Instalace se provede pouhým rozbalením zip souboru a zkopírováním všech EXE souborů do adresáře cgi-bin WWW serveru. Popis zkopírovaných souborů najdete v souboru README_36.txt, který je součásti zip souboru.

Druhým krokem je rozbalení dalších zip souborů (které vznikly rozbalením souboru mapserver-3.6.3-win32-php4.2.3-libwww-ecw.zip) do systémového adresáře (obvykle C:\Windows\System nebo C:\Winnt\System32). Pokud máte systémový adresář umístěn na jiném místě a nevíte kde, kontaktujte svého administrátora.

Jmenovitě se jedná o následující zip soubory: ECW_DLL.zip, libwww_dll.zip, xerces_dll.zip

Instalace

 

5

1.2.1 Ověření instalace

Pro ověření instalace spusťte WWW prohlížeč a zadejte adresu: http://127.0.0.1/cgi-bin/mapserv.exe

WWW server odpoví na váš požadavek buďto chybovým hlášením WWW serveru nebo chybovým hlášením MapServer.

V případě chybového hlášení mapového serveru můžete pokračovat další kapitolou – MapServer je korektně nainstalován, neboť odpovídá na požadavky.

Př. Chybové hlášení mapového serveru (obr. 1)

No query information to decode. QUERY_STRING is set, but empty.

Ověření instalace

Obrázek 1-1: Ukázka odpovědi správně nainstalovaného MapServeru.

Ukázka odpovědi správně nainstalovaného MapServeru

V případě chybového hlášení WWW serveru se můžete obvykle setkat se dvěmi možnostmi, které jsou uvedeny v následující tabulce. Pokud chybové hlášení neodpovídá žádnému z uvedených kontaktujte tutora kurzu.

Chybové hlášení č.1

Popis

Řešení

Not Found

The requested URL /cgi-bin/mapserv.exe was not found on this server.

 

Soubor není v adresáři přítomen nebo je poškozen

Podívejte se zda se soubor mapserv.exe nachází v adresáři cgi-bin, pokud ne, zkopírujte soubor znovu. Pokud ano, umístěte do adresáře html stránku a zkuste ji zobrazit. V případě, že se nezobrazí máte nekorektně nainstalovaný WWW server. Kontaktujte svého administrátora nebo si znovu projděte postup konfigurace WWW serveru. V případě stálých potíží kontaktujte tutora kurzu.

Chybové hlášení č.2 

Popis

Řešení

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, jan.ruzicka@vsb.cz and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

 

Soubor není korektní CGI aplikací - obvykle to znamená, že je poškozen

Zkopírujte soubor znovu. V případě stálých potíží kontaktujte tutora kurzu.

Chybové hlášení

 

6

1.3 Příprava jednoduché mapové kompozice pro MapServer

Pracovat budeme v adresáři: ...wwwroot\ms. Pokud nevíte kde se nachází wwwroot vašeho WWW serveru kontaktujte svého administrátora.

Do tohoto adresáře zkopírujeme adresáře DataSHP a symbols, které se nacházejí na doprovodném CD v adresáři ms\MapServer\. Adresář DataSHP obsahuje ESRI Shapefiles a adresář symbols definici symbolů.

Úvodní předpoklady

MS6.gif

Obrázek 1-2: Princip fungování MapServeru – CGI varianta.

Princip fungování MapServeru – CGI varianta

 

7

1.3.1 Vytvoření souboru s příponou map

Základním souborem se kterým MapServer pracuje je soubor s příponou map, který představuje definici obsahu prvků mapové kompozice. Jedná se o obyčejný ASCII soubor, který je možné vytvářet např. v aplikaci Notepad (Poznámkový blok).

Následující tabulka ukazuje řádky textu ve vytvořeném souboru s vysvětlením co znamenají. Do souboru se umísťují údaje pouze z levého sloupce tabulky. Vytvořte soubor prvni.map a uložte jej do adresáře ...\wwwroot\ms

Řádek souboru

Vysvětlení

NAME prvni.map

Název souboru

STATUS ON

Mapa se má vykreslit

SIZE 600 400

Velikost generovaného rastru v pixelech (width and height)

EXTENT -903000 -1225000 -430000 -929000

Rozsah v reálných souřadnicích MinX, MinY, MaxX, MaxY

UNITS meters

Jednotky v mapě

SHAPEPATH "DataSHP"

Cesta (název adresáře) k  SHP souborům

SYMBOLSET symbols/symbols.sym

Cesta (název adresáře a souboru se symboly) k symbolům

FONTSET symbols/fonts.txt

Cesta (název adresáře a souboru se definicí TrueType fontů)  k deklaraci fontů

IMAGECOLOR 211 211 211

Barva pozadí obrázku (R G B)

 

 

WEB

  IMAGEPATH '../tmp/'

  IMAGEURL '../tmp/'

  TEMPLATE prvni.html

END  #WEB

Sekce WEB představuje Nastavení prostředí

a) cesta pro umísťování vygenerovaných rastrových obrázků fyzicky na disku

b) cesta k vygenerovaným rastrovým obrázkům v rámci WWW

c) název šablony pro umístění vygenerovaného obrázku (viz kap. 1.3.2)

END  # MAPFILE

Ukončení souboru MAP

První soubor MAP

Kód (text) v souboru map se řídí následujícími pravidly:

· Každý řádek představuje jeden parametr souboru

· Název parametru se obvykle uvádí celý velkými písmeny (nepsané pravidlo)

· Za názvem parametru se vyskytuje jedna hodnota nebo více hodnot (složená hodnota) oddělených mezerami

· Pokud se za názvem parametru nenachází hodnota jedná se buď o začátek některé ze sekcí souboru nebo o konec sekce. Konec sekce je uveden klíčovým slovem END.

Př. Sekce

WEB
  IMAGEPATH '../tmp/'
  IMAGEURL '../tmp/'
  TEMPLATE prvni.html
END  #WEB

 

· Každý soubor MAP je ukončen klíčovým slovem END

· Poznámky se v souboru uvozují znakem hash (#)

· Barvy se uvádí v RGB hodnotách

Klíčová slova a parametry jsou definovány v dokumentaci k produktu MapServer (resp. k souboru MAP) http://mapserver.gis.umn.edu/doc36/mapfile-reference.html

Pravidla

Následující tabulka ukazuje jak se v souboru MAP definuje jedna vrstva pro zobrazení v mapovém poli.

Řádek souboru

Vysvětlení

LAYER

Začátek sekce LAYER (Vrstva)

  NAME ‚vusc‘

Název vrstvy

  TYPE Polygon

Typ

  STATUS DEFAULT

Zda bude v mapě zobrazena

 DATA vusc

Název ESRI Shapefile souboru bez přípony

  CLASS

Začátek sekce CLASS (třída). Implicitní třída pro všechny prvky, která musí být definována.

    NAME ‚vusc‘

Název třídy. Tento název se objevuje v legendě k mapě.

    COLOR 230 255 230

Barva výplně polygonů (R G B)

    OUTLINECOLOR 128 128 128

Barva obrysu polygonů (R G B)

 END  # CLASS

Konec deklarace třídy

END  # LAYER

Konec deklarace vrstvy

Uvedený kód musíte umístit před ukončující slovo END celého souboru.

Definice vrstvy

Př. Celý soubor MAP
NAME prvni.map
STATUS ON
SIZE 600 400
EXTENT –903000 –1225000 –430000 –929000
UNITS meters
SHAPEPATH „DataSHP“
SYMBOLSET symbols/symbols.sym
FONTSET symbols/fonts.txt
IMAGECOLOR 211 211 211
WEB
      IMAGEPATH ‚../tmp/‘ 
      IMAGEURL ‚../tmp/‘ 
      TEMPLATE prvni.html
END  #WEB
LAYER
      NAME ‚vusc‘
      TYPE Polygon
      STATUS DEFAULT
      DATA vusc
      CLASS
            NAME ‚vusc‘
            COLOR 230 255 230
            OUTLINECOLOR 128 128 128
      END  # CLASS
END  # LAYER
END  # MAPFILE

Celý kód úvodního souboru MAP

 

PRŮVODCE STUDIEM 2

 

V případě problémů s kopírováním (přepisováním) kódu, soubor MAP naleznete na CD v adresáři ms/MapServer/ pod názvem prvni_v1.map

Nezapomeňte že soubor MAP musíte umístit do adresáře ...wwwroot\ms

Zdroj na CD

 

8

1.3.2 Vytvoření “template” souboru

Template soubor (šablona) je jednoduchý HTML dokument, který obsahuje specielní značky, které MapServer prochází a nahrazuje aktuálními hodnotami.

Př. Specielní značka
[img]

Uvedená značka je po zpracování MapServerem nahrazena názvem (a cestou k) vygenerovaného rastrového souboru.

Úvod

Vytvořte soubor s názvem prvni.html a umístěte jej do stejného adresáře ve kterém se nachází soubor MAP.

Kód souboru prvni.html

<html>
<head>
<META HTTP-Equiv="Content-Type" CONTENT="text/html; charset=windows-1250">
<title>CR - cvicne</title></head>
<body bgcolor=#FFFFFF>
<center><h1>ČR</h1>
<INPUT NAME="img" TYPE="image" SRC="[img]" width=600 height=400
border=0></center>
</body></html>

 

První šablona

 

PRŮVODCE STUDIEM 3

 

V případě problémů s kopírováním (přepisováním) kódu soubor HTML naleznete na CD v adresáři ms/MapServer/ pod názvem prvni_v1.html

Zdroj na CD

 

9

1.4 Testování jednoduché mapové kompozice

Pokud vám bude štěstí přát po spuštění testu se vám zobrazí výsledek podobný tomu, který je zobrazen na dalším obrázku. Pokud ne postupujte podle instrukcí uvedených v úvodu tohoto modulu.

Úvodní předpoklad

Obrázek 1-3: První mapový výstup z UMN MapServer.

První mapový výstup z UMN MapServer.

Vytvoříme adresář wwwroot\tmp do kterého se budou ukládat PNG soubory. Pro otestování vytvořené kompozice vytvoříme následující HTML soubor spustit.html

Příprava testování

<html>
<body>
<form method=GET action="http://127.0.0.1/cgi-bin/mapserv.exe">
<input type="hidden" name="map" value="C:\Program Files\Apache Group\Apache\htdocs\ms\prvni.map">
<input type="hidden" name="zoomsize" value=2>
<input type="hidden" name="layer" value="vusc">
<center><input type="submit" value="Makej"></center>
</form>
</body></html>

Tučný text (parametr value značky input identifikované jako map) "C:\Program Files\Apache Group\Apache\htdocs\ms\prvni.map" v kódu nahraďte cestou k vašemu souboru první.map.

Spouštěcí soubor

Spusťte WWW prohlížeč a zadejte cestu (URL) http://127.0.0.1/ms/spustit.html. Spusťte tlačítkem Makej.

Otevření spouštěcího souboru

Obrázek 1-4: Uživatelské rozhraní spouštěcího souboru.

Uživatelské rozhraní spouštěcího souboru

 

SAMOSTATNÝ ÚKOL 1

 

Modifikujte soubor MAP tak aby zobrazené polygony představující kraje ČR nebyly světle zelené, ale tmavě modré. Po vyzkoušení vraťte do původního stavu.

Změna barvy výplně polygonů

 

Obrázek 1-5: Změna barvy výplně polygonů

 

 

ŘEŠENÍ A ODPOVĚDI, NÁVODY

 

V souboru prvni.map se změní hodnoty u parametru COLOR. Soubor s řešením naleznete na CD v adresáři ms/MapServer/ pod názvem ukol1.map

 

 

10

1.5 Implementace základních ovládacích prvků pro prohlížení mapové kompozice uživatelem

Interakce s uživatelem bude přes zvolení funkce výběrem z přepínacích polí (radio buttons) a kliknutí na obrázek.

Způsob ovládání prezentace

 

11

1.5.1 ZoomIn, Out, Pan

Do souboru prvni.html (šablona) je potřeba přidat několik řádků.

<form method=GET action="http://127.0.0.1/cgi-bin/mapserv.exe“> <!—odkaz na formulář -->
<p>
<input type=radio name=mode value=browse checked> <b>Prohlížet</b> <!—parametr mode  -->
<input type=radio name=zoomdir value=1 [zoomdir_1_check]> Zoom In
<input type=radio name=zoomdir value=0 [zoomdir_0_check]> Pan
<input type=radio name=zoomdir value=-1 [zoomdir_-1_check]> Zoom Out
</p>
<!—následující řádek již máme -->
<INPUT NAME=img TYPE=image SRC=[img] width=600 height=400 border=0>
<input type=hidden name=imgext value=“[mapext]“>
<input type=hidden name=map value=“[map]“>
<input type=hidden name=zoomsize value=2> </form>

Modifikace souboru prvni.html

První řádek definuje formulář jehož součástí je zobrazená mapa. Tento formulář se odkazuje na aplikaci MapServer (action="http://127.0.0.1/cgi-bin/mapserv.exe“).

Součástí formuláře jsou dvě sady přepínacích tlačítek:

· mode

· zoomdir

Hodnota parametru mode udává aplikaci MapServer jaký druh operace bude probíhat. V našem případě máme nadefinovánu pouze jednu operaci nazvanou Prohlížet (<input type=radio name=mode value=browse checked>) a je identifikována hodnotou browse.

Hodnota parametru zoomdir udává aplikaci MapServer jaká bude změna měřítka. V našem případě máme nadefinovány tři operace ZoomIn (<input type=radio name=zoomdir value=1 [zoomdir_1_check]>) a je identifikována hodnotou 1, Pan (<input type=radio name=zoomdir value=0 [zoomdir_0_check]>) a je identifikována hodnotou 0, ZoomOut (<input type=radio name=zoomdir value=1 [zoomdir_-1_check]>) a je identifikována hodnotou –1

Parametry předávané MapServeru

 

K ZAPAMATOVÁNÍ 1

 

Parametry v hranatých závorkách uvedené v šabloně jsou MapServerem nahrazovány aktuálními hodnotami.

 

 

Obrázek 1-6: Výstup z MapServeru s nástroji Zoom in, Zoom out, Pan

Výstup z MapServeru

Následující kód prezentuje výsledek zobrazený na obrázku uvedeném výše.

<!-- MapServer version 3.6.3 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP SUPPORTS=PROJ SUPPORTS=TTF SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT INPUT=EPPL7 INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
<html>
<head>
<META HTTP-Equiv="Content-Type" CONTENT="text/html; charset=windows-1250">
<title>CR - cvicne</title></head>
<body bgcolor=#FFFFFF>
<center><h1>ČR</h1>
<form method=GET action="http://127.0.0.1/cgi-bin/mapserv.exe"> <!—odkaz na formulář -->
<p>
<input type=radio name=mode value=browse checked> <b>Prohlížet</b> <!—parametr mode  -->
<input type=radio name=zoomdir value=1 > Zoom In
<input type=radio name=zoomdir value=0 checked> Pan
<input type=radio name=zoomdir value=-1 > Zoom Out
</p>
<!—následující řádek již máme -->
<INPUT NAME=img TYPE=image SRC=../tmp/prvni.map10541591721648.gif width=600 height=400 border=0></center>
<input type=hidden name=imgext value=-903000.000000 -1234460.000000 -430000.000000 -919540.000000>
<input type=hidden name=map value=“C:\Program Files\Apache Group\Apache\htdocs\ms\prvni.map“>
<input type=hidden name=zoomsize value=2>
</form>
</center>
</body></html>

Všimněte si, že parametry uvedené v šabloně prvni.html jsou v tomto kódu nahrazeny konkrétními hodnotami.

Př. 1 Rozsah zobrazené mapy

Řádek z šablony: <input type=hidden name=imgext value=[mapext]>

Řádek z výstupu:
<input type=hidden name=imgext value=-903000.000000 -1234460.000000 -430000.000000 -919540.000000>
 

Př. 2 Odkaz na vygenerovaný obrázek

Řádek z šablony: <INPUT NAME=img TYPE=image SRC=[img] width=600 height=400 border=0>
 
Řádek z výstupu:
<INPUT NAME=img TYPE=image SRC=../tmp/prvni.map10541591721648.gif width=600 height=400 border=0>

Zdrojový HTML kód výsledku zasílaného klientovi

Kliknutím myší zvolte funkci ZoomIn a klikněte do mapy do Moravskoslezského kraje. Výsledkem by mělo být přiblížení v mapě.

Vyzkoušení funkcí

Obrázek 1-7: Změna měřítka po kliknutí do mapy.

ZoomIn

Následující část HTML kódu generovaná po užití funkce ZoomIn prezentuje změnu v parametru imgext, který představuje aktuálně zobrazený rozsah mapy.

<input type=hidden name=imgext value="-617623.333333 -1174625.200000 -381123.333333 -1017165.200000">

Část HTML kódu po provedení ZoomIn

 

PRŮVODCE STUDIEM 4

 

V případě problémů s kopírováním (přepisováním) kódu soubor HTML naleznete na CD v adresáři ms/MapServer/ pod názvem prvni_v2.html

Zdroj na CD

 

12

1.5.2 Identify

Nástroj Identify umožní uživateli naší prezentace (aplikace) zobrazit údaje o vybraném geoprvku. Výběr geoprvku bude uživatel provádět pouhým kliknutím do obrázku.

Popis

Údaje o geoprvku budeme vypisovat do předem připravené tabulky (šablony tabulky). Šablona tabulky sestává v případě MapServeru ze tří HTML souborů. Všechny tři soubory dohromady tvoří HTML soubor (šablonu), ve kterém se zobrazují atributové údaje o nalezeném geoprvku.

Šablona pro zobrazení

První ze souborů nazveme vusc_header.html a uložíme do stejného adresáře jako soubor MAP. Obsah souboru naplníme následujícím kódem:

<html>
<head>
<META HTTP-Equiv=“Content-Type“ CONTENT=“text/html; charset=windows-1250“>
<title> Atributy vybraného objektu </title></head>
<body bgcolor=#FFFFFF>
<center><h1>Atributy vybraného objektu</h1>
<font size+1><b>Layer: [cl]</b></font><p>
<table cellpadding=5 cellspacing=2 border=0>
<tr bgcolor=#CCCCCC><th>ID</th><th>NAZEV</th></tr>

Z kódu je patrné, že se jedná o první část HTML stránky s tabulkou, která končí definicí řádku hlavičky samotné tabulky:

<tr bgcolor=#CCCCCC><th>ID</th><th>NAZEV</th></tr>

V kódu se stejně jako v šabloně prvni.html objevuje parametr v hranatých závorkách. V tomto případě je jím [cl]. Tento parametr nahradí MapServer názvem vrstvy, ze které je daný geoprvek.

Hlavička tabulky

Druhý ze souborů nazveme vusc.html a uložíme do stejného adresáře jako soubor MAP. Obsah souboru naplníme následujícím kódem:

<tr><td>[ID]</td><td>[NAZEV]</td></tr>

Z kódu je patrné, že se jedná o definici jednoho řádku tabulky. Parametry [ID] a [NAZEV] představují názvy položek atributové tabulky zvolené vrstvy (v našem případě se jedná o kraje ČR). MapServer tyto parametry nahradí údaji z atributové tabulky vrstvy.

Tělo tabulky

Třetí ze souborů nazveme vusc_footer.html a uložíme do stejného adresáře jako soubor MAP. Obsah souboru naplníme následujícím kódem:

</table>
</body>
</html>

Z kódu je patrné, že se jedná o ukončení tabulky a samotného HTML kódu (stránky).

Patička tabulky

Námi vytvořené soubory musíme asociovat se souborem MAP resp. s vrstvou krajů, která je v souboru MAP definována. Asociace se provádí následujícím způsobem. Za sekci CLASS umístíme následující tři parametry.

HEADER „vusc_header.html“
FOOTER „vusc_footer.html“
TEMPLATE „vusc.html“

Část výsledného kódu souboru MAP, pak vypadá následujícím způsobem:

...
LAYER
  NAME ‚vusc‘
  TYPE Polygon
  STATUS DEFAULT
  DATA vusc
  CLASS
    NAME ‚vusc‘
    COLOR 230 255 230
    OUTLINECOLOR 128 128 128
  END  # CLASS
  HEADER „vusc_header.html“
  FOOTER „vusc_footer.html“
  TEMPLATE „vusc.html“
 
END  # LAYER
...

Úprava souboru MAP

Z pohledu uživatele musíme přidat možnost volby nástroje (funkce) Identifikace. To zařídíme umístěním následujících řádků do souboru prvni.html.

<p>
<input type=radio name=mode value=nquery> <b>Identify</b>
</p>

Uvedený kód rozšíří sadu přepínacích tlačítek mode o jedno. Celkem tedy budou v souboru dvě přepínací tlačítka mode: browse a nquery.

Část výsledného kódu (sady přepínacích tlačítek):

<p>
<input type=radio name=mode value=nquery> <b>Identify</b>
</p>
<p>
<input type=radio name=mode value=browse checked> <b>Prohlížet</b> <!—parametr mode  -->
<input type=radio name=zoomdir value=1 [zoomdir_1_check]> Zoom In
<input type=radio name=zoomdir value=0 [zoomdir_0_check]> Pan
<input type=radio name=zoomdir value=-1 [zoomdir_-1_check]> Zoom Out
</p>

Úprava souboru prvni.html

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Výsledné uživatelské rozhraní vypadá následujícím způsobem:

Testování

Obrázek 1-8: Uživatelské prostředí s nástrojem Identifikace.

Uživatelské prostředí s nástrojem Identifikace

Vybereme funkci Identify a klikneme kdekoli do mapy. Výstupem by měla být následující WWW stránka.

Testování

Obrázek 1-9: Výstup z Identifikace.

Zobrazené atributy samozřejmě závisí na tom, který z krajů jste kliknutím myší vybrali. V našem případě jsme klikli na hranici tří krajů.

Výstup z Identifikace

 

PRŮVODCE STUDIEM 5

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvy prvni_v3.html, prvni_v3.map, vusc_header.html, vusc.html, vusc_footer.html.

Zdroj na CD

 

SAMOSTATNÝ ÚKOL 2

 

Modifikujte soubory vusc... tak aby se zobrazovaly rovněž údaje z pole pod názvem KOMARI. Pole obsahuje počet komárů na osobu v kraji.

Přidání pole do výpisu Identifikace

 

Obrázek 1-10: Přidání pole do výpisu Identifikace

 

 

ŘEŠENÍ A ODPOVĚDI, NÁVODY

 

Soubory s řešením naleznete na CD v adresáři ms/MapServer/ pod názvem ukol2.html, ukol2_header.html, ukol2_footer.html

 

 

13

1.6.1 Legenda

Přidání legendy probíhá stejně jako u všech ostatních prvků celé kompozice (měřítko, přehledka) ve dvou krocích. Vždy se jedná o modifikaci souboru MAP a HTML šablony.

Úvod

Do souboru MAP se před koncovou značku souboru (poslední řádek END # MAPFILE) umístí následující kód (parametry).

LEGEND

Úvodní značka sekce Legenda

  KEYSIZE 18 12

Velikost symbolu v legendě v pixelech – obdélník, který je symbolu vymezen (šířka výška)

  LABEL

Úvodní značka sekce Popisek

    TYPE BITMAP

Typ popisku v legendě. V zásadě jsou dvě možnosti: true type, bitmap. Typ bitmap má mnoho omezení, ale jeho zobrazení je spolehlivější.

    SIZE tiny

Velikost popisku. V případě bitmapy je možné volit z následujících možností: tiny|small|medium|large|giant

    COLOR 0 0 89

Barva popisku (R G B)

  END

Konec sekce popisek

  STATUS ON

Legenda je zapnuta

END

Konec sekce legenda

Do legendy se vypíší všechny vrstvy, které mají v sekci CLASS uveden název (parametr NAME).

Přidání legendy (souboru MAP)

Do souboru prvni.html přidáme následující řádek:

<P><IMG SRC="[legend]" border="0"></P>

Řádek umístíme hned za řádek představující umístění mapy. Část výsledného kódu:

<INPUT NAME=img TYPE=image SRC=[img] width=600 height=400 border=0>
<P><IMG SRC="[legend]" border="1"></P>

Parametr [legend] je nahrazen cestou (cesta a název) k obrázku legendy, který generuje MapServer.

Přidání legendy (soubor prvni.html)

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Výsledné uživatelské rozhraní vypadá následujícím způsobem:

Testování

Obrázek 1-11: Uživatelské prostředí i s legendou.

Dole pod obrázkem představujícím mapové pole (mapu) se zobrazil obrázek legendy.

Uživatelské prostředí i s legendou

PRŮVODCE STUDIEM 6

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvy prvni_v4.html, prvni_v4.map.

Zdroj na CD

 

SAMOSTATNÝ ÚKOL 3

 

Podívejte se do adresáře tmp a zkuste identifikovat jakým způsobem jsou vygenerovaným obrázků přidělovány jedinečné názvy.

Určení jednoznačné identifikace názvů generovaných obrázků

 

14

1.6.2 Měřítko

Do souboru MAP se před koncovou značku souboru (poslední řádek END # MAPFILE) umístí následující kód (parametry).

SCALEBAR

Úvodní značka sekce Měřítko

  IMAGECOLOR 255 255 255

Barva pozadí (R G B)

  LABEL

Úvodní značka sekce Popisek

    COLOR 0 0 0

Barva popisku (R G B)

    SIZE tiny   

Velikost

  END

Konec sekce Popisek

  STYLE 1

0, 1 – k dispozici jsou dva styly

  SIZE 50 2

Velikost v pixelech (šířka výška)

  COLOR 0 0 0

Barva měřítka (R G B)

  UNITS KILOMETERS

Jednotky

  INTERVALS 2

Počet intervalů

  TRANSPARENT TRUE

Průhlednost

  STATUS TRUE

Zapnuto

END

Konec sekce Měřítko

Přidání měřítka (soubor MAP)

Do souboru prvni.html přidáme následující řádek:

<P><IMG SRC="[scalebar]" border="0"></P>

Řádek umístíme hned za řádek představující umístění legendy. Část výsledného kódu:

<INPUT NAME=img TYPE=image SRC=[img] width=600 height=400 border=0>
<P><IMG SRC="[legend]" border="1"></P>
<P><IMG SRC="[scalebar]" border="1"></P>

Parametr [scalebar] je nahrazen cestou (cesta a název) k obrázku měřítka, který generuje MapServer.

Přidání měřítka (soubor prvni.html)

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Výsledné uživatelské rozhraní vypadá následujícím způsobem:

Testování

Obrázek 1-12: Uživatelské prostředí i s měřítkem.

Dole pod obrázek představující legendu se zobrazil obrázek měřítka.

Uživatelské prostředí i s měřítkem

 

PRŮVODCE STUDIEM 7

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvy prvni_v5.html, prvni_v5.map.

Zdroj na CD

 

15

1.6.3 Přehledka

Do souboru MAP se před koncovou značku souboru (poslední řádek END # MAPFILE) umístí následující kód (parametry).

REFERENCE

Úvodní značka sekce Přehledka

  IMAGE reference.png

Název souboru, který představuje obrázek mapy celé zobrazované oblasti.

  EXTENT  -903000 -1225000 -430000 -929000

Ohraničující obdélník (obvykle totožný s rozsahem celé mapy)

  SIZE 200 127

Velikost obrázku v pixelech

  STATUS ON

Přehledka je zapnuta

  COLOR -1 -1 -1

Barva pozadí obdélníku, kresleného nad přehledkou (R G B)

  OUTLINECOLOR 255 0 0

Barva okraje obdélníku, kresleného nad přehledkou (R G B)

END

Konec sekce Přehledka

Přidání přehledky (soubor MAP)

Do souboru prvni.html přidáme následující řádek:

<P><INPUT NAME="ref" TYPE="image" SRC="[ref]" border="0"></P>

Značka INPUT byla využita z toho důvodu, že přehledka může být aktivním prvkem celé kompozice. Uživatel může na přehledu kliknout myší a tak se posouvat v mapě. Řádek umístíme hned za řádek představující umístění měřítka. Část výsledného kódu:

<INPUT NAME=img TYPE=image SRC=[img] width=600 height=400 border=0>
<P><IMG SRC="[legend]" border="1"></P>
<P><IMG SRC="[scalebar]" border="1"></P>
<P><INPUT NAME="ref" TYPE="image" SRC="[ref]" border="0"></P>

Parametr [ref] je nahrazen cestou (cesta a název) k obrázku přehledky, který generuje MapServer.

Přidání přehledky (soubor prvni.html)

Soubor reference.png, na který se odkazujeme ze souboru MAP musíme zkopírovat do adresáře k souboru MAP.

Zkopírování souboru reference.png

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Výsledné uživatelské rozhraní vypadá následujícím způsobem:

Testování

Obrázek 1-13: Uživatelské prostředí i s přehledkou.

Dole pod obrázek představující legendu se zobrazil obrázek přehledky.

Uživatelské prostředí i s přehledkou

Pomocí nástrojů změňte měřítko. Výsledek je zobrazen na následujícím obrázku.

Testování

Obrázek 1-14: Zobrazení rozsahu mapy v přehledce.

Do přehledky je vykreslen obdélník znázorňující rozsah zobrazené mapy.

Zobrazení rozsahu mapy v přehledce

Klikněte do přehledky někde do okolí Prahy. Výsledek kliknutí je zobrazen na dalším obrázku.

Posun v mapě pomocí přehledky

Obrázek 1-15: Posun v mapě pomocí přehledky.

Do přehledky je vykreslen obdélník znázorňující rozsah práce zobrazené mapy.

Posun v mapě pomocí přehledky

 

PRŮVODCE STUDIEM 8

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvy prvni_v6.html, prvni_v6.map.

Zdroj na CD

 

16

1.6.4 Uspořádání mapové kompozice do přehlednější podoby

Následující HTML kód nahrazuje původní nepříliš vhodné rozmístění komponent v prohlížeči.

<TABLE>
<TR><TD>
<INPUT NAME="img" TYPE="image" SRC="[img]" width=600 height=400 border=0>
</TD>
<TD>
<P><IMG SRC="[legend]" border="0"></P>
<P><IMG SRC="[scalebar]" border="0"></P>
<P><INPUT NAME="ref" TYPE="image" SRC="[ref]" border="0"></P>
</TD>
</TR>
</TABLE>

Výše uvedeným kódem přepište následující řádky v souboru prvni.html:

<INPUT NAME=img TYPE=image SRC=[img] width=600 height=400 border=0>
<P><IMG SRC="[legend]" border="1"></P>
<P><IMG SRC="[scalebar]" border="1"></P>
<P><INPUT NAME="ref" TYPE="image" SRC="[ref]" border="0"></P>

Změna rozmístění komponent v ploše

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Výsledné uživatelské rozhraní vypadá následujícím způsobem:

Testování

Obrázek 1-16: Upravené uživatelské prostředí.

Upravené uživatelské prostředí

 

PRŮVODCE STUDIEM 9

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvy prvni_v7.html, prvni_v7.map.

Zdroj na CD

 

17

1.7.1 Label

Každou z vrstev je možné opatřit popisky z atributové tabulky. Toto se řeší modifikací souboru MAP v sekci LAYER a CLASS. Následující kód ukazuje modifikovaná sekce LAYER. Tučně jsou vyznačeny přidané řádky.

LAYER
  NAME ‚vusc‘
  TYPE Polygon
  STATUS DEFAULT
  DATA vusc
  LABELITEM NAZEV
  CLASS
    NAME ‚vusc‘
    LABEL
      COLOR 0 0 0
      SIZE tiny
    END
    COLOR 230 255 230
    OUTLINECOLOR 128 128 128
  END  # CLASS
  HEADER „vusc_header.html“
  FOOTER „vusc_footer.html“
  TEMPLATE „vusc.html“
 
END  # LAYER

Parametr LABELITEM představuje název položky z atributové tabulky, ze které bude získán text pro popis v mapě.

Sekce LABEL má stejný význam jako v případě měřítka nebo legendy.

Popsání vrstvy krajů

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Výsledné uživatelské rozhraní vypadá následujícím způsobem:

Testování

Obrázek 1-17: Kraje opatřené popisky

Dva kraje nejsou popsány, to je způsobeno překryvem popisků, který je implicitně zakázán.

Kraje opatřené popisky

 

PRŮVODCE STUDIEM 10

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvy prvni_v8.map.

Zdroj na CD

 

18

1.7.2 Klasifikace

Každá vrstva může obsahovat více než jednu třídu (sekci CLASS). Každá třída může mít nadefinovány jiné parametry pro zobrazení geoprvků (např. barvu pozadí, velikost symbolu).

Doposud jsme pro vrstvu použili pouze implicitní třídu pro všechny geoprvky (kraje).

CLASS
    NAME 'vusc'
    LABEL
      COLOR 0 0 0
      SIZE tiny
    END
    COLOR 230 255 230
    OUTLINECOLOR 128 128 128
  END  # CLASS

Třída byla nazvána vusc a měla výše uvedené parametry. Všechny kraje se poté zobrazují stejnou barvou.

Pokud bychom chtěli zobrazit kraje např. podle počtu obyvatel v krajském městě ve třech třídách (méně než 100 tis., 100 tis. – 300 tis., více než 300 tis.) vytvoříme tři třídy a každou opatříme parametrem EXPRESSION, které vyjadřuje podmínku zařazení geoprvku (kraje) do třídy.

Úvod

Musíme upravit soubor MAP, a to následujícím způsobem: původní třídu nahradíme třemi novými třídami. Výsledný kód bude vypadat následujícím způsobem:

CLASS
    EXPRESSION ([KMOBYV] <= 100000)
    NAME '<= 100000'
    COLOR 244 180 180
    OUTLINECOLOR 128 128 128
  END  # CLASS
  CLASS
    EXPRESSION ([KMOBYV] > 100000 AND [KMOBYV] <= 300000)
    NAME '> 100000 a <= 300000'
    COLOR 244 140 140
    OUTLINECOLOR 128 128 128
  END  # CLASS
  CLASS
    EXPRESSION ([KMOBYV] > 300000)
    NAME '> 300000'
    COLOR 244 100 100
    OUTLINECOLOR 128 128 128
  END  # CLASS

Z kódu je patrné, že hodnota parametru EXPRESSION může být i komplexnějšího charakteru. Je možné používat základní logické operátory (>, <, =, <=, >=, AND, OR, NOT). V případě řetězců musí být využity uvozovky.

Definice tříd

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Výsledné uživatelské rozhraní vypadá následujícím způsobem:

Testování

Obrázek 1-18: Kraje zatříděné podle počtu obyvatel v krajském městě

Kraje zatříděné podle počtu obyvatel v krajském městě

 

PRŮVODCE STUDIEM 11

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvy prvni_v9.map.

Zdroj na CD

 

SAMOSTATNÝ ÚKOL 4

 

Modifikujte soubory prvni.map tak aby se kraje rozdělily do tříd podle počtu komárů na osobu (<= 10000, >.10000 a <= 20000, > 20000). Počty jsou uvedeny v poli KOMARI.

Třídy podle počtu komárů

 

Obrázek 1-19: Třídy podle počtu komárů

Třídy podle počtu komárů

 

ŘEŠENÍ A ODPOVĚDI, NÁVODY

 

Soubor s řešením naleznete na CD v adresáři ms/MapServer/ pod názvem ukol4.map

 

 

19

1.7.3 Liniová vrstva – limit scale

Každá vrstva může mít nastaven rozsah měřítek ve kterých se má zobrazovat. Můžeme tak pro různá měřítka zobrazovat různě generalizovanou geometrii. Samozřejmě, že si musíme takové vrstvy připravit, což může být časově velmi náročné.

V případě MapServeru se toto řeší definicí v rámci sekce LAYER. Následující kód definuje vrstvu silnic a nastavuje měřítkové omezení.

LAYER
  NAME ‚silnice‘
  TYPE line
  STATUS DEFAULT
  DATA silnice
  MAXSCALE 2000000
  CLASS
    NAME ‚Silnice‘
    COLOR 0 0 255
  END  # CLASS
END  # LAYER

Parametr MAXSCALE uvádí ”maximální” měřítko při němž dojde k zobrazení

Nastavení měřítkového omezení

V prohlížeči zadáme http://127.0.0.1/ms/spustit.html a klikneme na tlačítko Makej. Po spuštění bychom neměli oproti předchozím výstupům pozorovat rozdíl. Zvolíme proto funkci ZoomIn a výsledné uživatelské rozhraní vypadá následujícím způsobem (zobrazí se vrstva silnic):

Testování

Obrázek 1-20: Vrstva silnic

Vrstva silnic

 

PRŮVODCE STUDIEM 12

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/MapServer/ pod názvem prvni_v10.map.

Zdroj na CD

 

20

1.8 Instalace Minesota Map Server – PHP modul

Práce s PHP modulem bude pouze nastíněna. Základním předpokladem pro zvládnutí této části je znalost jazyka PHP (nebo alespoň nějakého jiného programovacího jazyka). Tato část je nepovinná a pouze může rozšířit váš obzor.

Úvod

 

21

1.8.1 Instalace PHP

Protože instalace PHP modulu je výrazně závislá na verzi interpretovacího nástroje jazyka PHP, je nutné nainstalovat PHP interpret, který je k dispozici na CD.

Úvod

Na disku C (pokud k němu máte přístup) vytvořte adresář PHP. Do něj rozbalte obsah souboru php-4.2.3-Win32.zip. Tímto je PHP částečně nainstalováno. V druhém kroku je potřeba provést konfiguraci WWW serveru, tak aby soubory s kódy jazyka PHP interpretoval pomocí námi nainstalovaného interpretu jazyka PHP.

Instalace

Popis instalace bude zaměřen pouze na dva nejpoužívanější WWW servery: Apache a IIS. Pokud používáte jiný WWW server řiďte se pokyny na domovských stránkách PHP (http://www.php.net) nebo kontaktujte svého administrátora WWW serveru.

Konfigurace WWW serveru

Konfigurace WWW serveru Apache se provádí v souboru httpd.conf, který je umístěn v domovském adresáři www serveru a v podadresáři conf (obvyklá cesta je C:\Program Files\Apache Group\Apache\conf\).

Do souboru je nutné umístit následující kód (je jedno na které místo):

<IfModule mod_mime.c>
    ScriptAlias /php/ "c:/PHP/"
    AddType application/x-httpd-php .php
    Action application/x-httpd-php "/php/php.exe"
</IfModule>

Uvedený kód definuje relativní cestu k adresáři C:\PHP, dále definuje MIME typ (application/x-httpd-php) pro soubory s příponou php a následně uvádí, že soubory daného MIME typu (application/x-httpd-php) se mají interpretovat pomocí souboru php.exe.

Po konfiguraci je nutné WWW server restartovat. To se obvykle provádí přes nabídku Start/Programs/Apache httpd server/Control apache/Restart.

Konfigurace Apache

Konfigurace WWW serveru IIS se provádí přes standardní konfigurační nástroj (konzole Internet Services Manager, který najdeme v administrativních nástrojích operačního systému). Postup je dokumentován na následujících obrázcích.

IIS

Obrázek 1-21: Umístění nástroje Internet Services Manager.

Umístění nástroje Internet Services Manager

Obrázek 1-22: Prostředí konzole (nástroje) Internet Services Manager (Internet Information Services).

Prostředí konzole (nástroje) Internet Services Manager

Obrázek 1-23: Rychlá nabídka (pravé tlačítko myši na název počítače) a funkce Properties.

Rychlá nabídka (pravé tlačítko myši na název počítače) a funkce Properties

Obrázek 1-24: Vlastnosti WWW serveru.

Vlastnosti WWW serveru

Po kliknutí na tlačítko Edit v sekci Master Properties na předchozím dialogovém okně (obrázku) dojde k vyvolání následujícího dialogového okna:

Obrázek 1-25: WWW server Master Properties.

WWW server Master Properties

Přepneme se na kartu HomeDirectory. Karta vypadá následujícím způsobem:

Obrázek 1-26: Karta HomeDirectory.

Karta HomeDirectory

Na kartě HomeDirectory zvolíme tlačítko Configuration. To nám zobrazí následující dialogové okno:

Obrázek 1-27: Okno Application Configuration.

Okno Application Configuration

V okně Application Configuration pomocí tlačítka Add přidáme ukazatel na Interpret PHP. Dialogové okno pro přidání ukazatele na PHP interpret je na dalším obrázku.

Obrázek 1-28: Dialogové okno pro přidání ukazatele na PHP interpret.

Okno má pouze dva parametry. První z nich je cesta k PHP interpretu a druhý z nich přípona souborů, které mají být PHP interpretem přeloženy.

Dialogové okno pro přidání ukazatele na PHP interpret

 

22

1.8.2 Otestování instalace PHP

Vytvoříme soubor test.php. Soubor bude obsahovat následující kód:

<?
phpinfo(); //vypsání parametrů PHP, WWW serveru, WWW klienta
?>

Soubor umístíme do adresáře ...wwwroot\ms a spustíme přes WWW prohlížeč zadáním adresy http://127.0.0.1/ms/test.php

Test.php

Výstup ze skriptu test.php přestavuje údaje o konfiguraci WWW serveru a PHP interpretu.

Obrázek 1-29: Výstup z test.php.

Pokud jste neobdrželi uvedený výstup, podívejte se do průvodce studiem. Pokud ani tam nenajdete řešení vašeho problému postupujte podle pokynů uvedených v úvodu modulu.

Výstup z test.php

 

PRŮVODCE STUDIEM 13

 

V případě problémů s kopírováním (přepisováním) kódu souboru pro Apache jej naleznete na CD v adresáři apache/ pod názvem httpd.conf.

Apache – httpd.conf -Zdroj na CD

 

V případě problémů se zobrazením výstupu z prvního PHP skriptu nad WWW serverem IIS (resp. konfigurací serveru) se přesvěčte, že adresář ...wwwroot\ms má v Internet Information Services nastavena práva pro spouštění PHP skriptů. Následující dva obrázky a doprovodný text prezentují postup, jak se o nastavení parametrů adresáře přesvědčit.

IIS – parametry adresáře ms

 

V okně Internet Information Services zvolíme pravým tlačítkem rychlou nabídku na adresář ms.

Obrázek 1-30: Zobrazení vlastností adresáře.

IIS – ověření parametrů adresáře ms

 

Po zvolení funkce Properties se zobrazí dialogové okno ms Properties. V části Execute Permisions musí být zvolena poslední možnost Scripts And Executables. To je demonstrováno na dalším obrázku.

Obrázek 1-31: Vlastnosti adresáře.

 

 

23

1.8.3 Instalace Minesota Map Server - PHP modul

Instalace probíhá velmi jednoduše a to pouhým zkopírováním DLL knihovny php_mapscript_36.dll do adresáře C:\PHP\extensions. DLL knihovnu je možné získat na http://www2.dmsolutions.ca/mapserver/dl/. V našem případě se knihovna nachází v archivu mapserver-3.6.3-win32-php4.2.3-libwww-ecw.zip.

Instalace

Testování správné instalace proběhne až v dalších krocích práce s PHP modulem.

Testování

Obrázek 1-32: Princip fungování MapServeru – PHP varianta.

Princip fungování MapServeru – PHP varianta

 

24

1.9.1 Vykreslení mapové kompozice připravené v předchozím cvičení

K testování správné instalace využijeme existující mapovou kompozici prvni.map. Prozatím do ní nebudeme zasahovat a pouze se pokusíme o její vykreslení, ale tentokrát již s využitím PHP modulu.

Úvod

Vytvoříme soubor prvni.php, který naplníme následujícím kódem, který se postará o vykreslení kompozice prvni.map.

<HTML>
<BODY>
<H1>Cvičení s PHP/MapScript</H1>
<?
  //přimapování DLL knihovny
  //dl("C:\temp\php_mapscript.dll ");
  $mapfile = "prvni.map";    //název souboru mapové kompozice
  $mapa = ms_newMapObj($mapfile); //vytvoření objektu MapObj
  $img = $mapa->draw();  //získání objektu typu Image
  //uložení obrázku do souboru a získání jeho URL adresy
  $url = $img->saveWebImage(MS_PNG, 1, 1, 0);
?>
<INPUT TYPE="IMAGE" NAME="mapa2" SRC=<? echo $url; ?> WIDTH=600 HEIGHT=400 BORDER=1>
</BODY>
</HTML>

Řádek //dl("C:\temp\php_mapscript.dll"); //přimapování DLL knihovny není interpretován a byl by použit pouze v případě, že bychom nemohli knihovnu umísit do adresáře C:\PHP\extensions.

Řádek $mapa = ms_newMapObj($mapfile) využívá konstruktoru ms_newMapObj (string mapfile) k získání objektu mapa. Všechny konstruktory tříd v PHP modulu začínají znaky ms_

Objekt mapa nabízí mnoho metod (s některými se seznámíme dále). V tomto případě se na dalším řádku využívá metoda draw. Tato metoda provede vykreslení obsahu mapového pole v paměti počítače (resp. vytvoří objekt img).

Objekt img se v posledním kroku zapíše na disk do adresáře definovaného v souboru prvni.map pomocí metody saveWebImage. Tato metoda má čtyři parametry. První je typ souboru (MS_JPEG, MS_GIF, MS_PNG, MS_WBMP), druhý udává průhlednost (0/1), třetí prokládání (0/1) a čtvrtý kvalitu (0 – 95).

První skript

Soubor prvni.php umístíme do stejného adresáře jako soubor prvni.map. Spustíme přes WWW prohlížeč adresou http://127.0.0.1/ms/prvni.php. Výstup ze skriptu by měl vypadat obdobně jako na následujícím obrázku.

Testování

Obrázek 1-33: Výstup z prvni.php.

Pokud jste neobdrželi uvedený výstup, podívejte se do průvodce studiem. Pokud ani tam nenajdete řešení vašeho problému postupujte podle pokynů uvedených v úvodu modulu.

Výstup z prvni.php

 

PRŮVODCE STUDIEM 14

 

V případě problémů s kopírováním (přepisováním) kódu souboru jej naleznete na CD v adresáři ms/ pod názvem prvni_v1.php.

Zdroj na CD

 

Přestože máte kód v pořádku může dojít k několika chybovým hlášením. Dále jsou uvedeny dvě nejpravděpodobnější:

Chyby

 

Fatal error: Call to undefined function: ms_newmapobj() in c:\program files\apache group\apache\htdocs\ms\prvni.php on line 7

Tato chyba ukazuje na špatnou instalaci DLL knihovny. V některých případech prosté zkopírování knihovny nestačí a je nutné provést několik dalších operací:

· Zkopírovat C:\PHP\php.ini-dist do C:\Winnt\php.ini (C:\Windows\php.ini)

· Editovat soubor C:\Winnt\php.ini

- Do sekce Dynamic Extensions doplnit řádek extension=php_mapscript_36.dll

- V sekci Paths and Directories změnit řádek extension_dir = ./ na
extension_dir = extensions

Správně nakonfigurovaný soubor php.ini najdete na CD v adresáři php pod názvem php.ini

Chyba - Call to undefined function

 

Na dalším obrázku jsou znázorněny další dvě možné chyby (varování), které jsou následovány stejnou chybou jako v předchozím případě.

Obrázek 1-34: Varování – Unable to load dynamic library.

V obou případech je problém se samotnou knihovnou (ne s instalací). Buď je soubor poškozen nebo používáte jinou verzi PHP než distribuovanou na doprovodném CD ke kurzu. Zkuste soubor php_mapscript_36.dll zkopírovat ještě jednou, případně ověřit verzi PHP.

Varování – Unable to load dynamic library

 

25

1.9.2 Přidání možnosti zoom in, zoom out, pan

Zatímco v případě CGI aplikace řeší operace s mapou samotná CGI aplikace mapserv.exe, v případě PHP modulu se o toto musí postarat vždy námi vytvořený skript. Jednoduše řečeno, co si nenapíšeme to nemáme. Výhodou však je možnost napsání operací, které CGI verze nenabízí.

Úvod

Podívejme se na následující kód, který pouze definuje základní uživatelské prostředí a parametry, které budou od uživatele předávány našemu skriptu (nové řádky jsou vyznačeny tučně):

<HTML>
<BODY>
<H1>Cviceni s PHP/MapScript</H1>
<?
  //dl("php_mapscript.dll");
  $mapfile = "prvni.map";   
  $mapa = ms_newMapObj($mapfile);
   
  //mapa má rozsah
  //zapsání rozsahu do objektu rect
  $rect = $mapa->extent;
 
  //zapsání rozsahu do stránky
  //umístění všech parametrů do formuláře
  ?>
 <FORM ACTION="prvni.php" METHOD=POST>
  <INPUT TYPE="HIDDEN" NAME="minx" VALUE=<? echo $rect->minx; ?>>
  <INPUT TYPE="HIDDEN" NAME="miny" VALUE=<? echo $rect->miny; ?>>
  <INPUT TYPE="HIDDEN" NAME="maxx" VALUE=<? echo $rect->maxx; ?>>
  <INPUT TYPE="HIDDEN" NAME="maxy" VALUE=<? echo $rect->maxy; ?>>
  <?
  $img = $mapa->draw(); 
  $url = $img->saveWebImage(MS_PNG, 1, 1, 0);
?>
<INPUT TYPE="IMAGE" NAME="mapa2" SRC=<? echo $url; ?> WIDTH=600 HEIGHT=400 BORDER=1>
<INPUT TYPE="HIDDEN" NAME="width" VALUE=600> <!—šířka mapy -->
<INPUT TYPE="HIDDEN" NAME="height" VALUE=400> <!—výška mapy -->
<P>Akce:
      <!—přepínací políčko na akci -->
      <input type=radio name=mode value=browse <? if ($mode==browse) echo "checked"; ?>> Prohlížet
</P>
<P>Zoom:
      <!—přepínací políčka  -->
      <input type=radio name=zoomf value=2 <? if ($zoomf==2) echo "checked"; ?>> Zoom In
      <input type=radio name=zoomf value=1 <? if ($zoomf==1) echo "checked"; ?>> Pan
      <input type=radio name=zoomf value=-2 <? if ($zoomf==-2) echo "checked"; ?>> Zoom Out
</P>
 
</FORM>
 
</BODY>
</HTML>

 

Uvedený kód není schopen zpracovávat kliknutí uživatele na obrázek, ale pouze demonstruje jaké parametry budeme skriptu předávat. Jedná se o podobnou skladbu jako v případě rozhraní pro CGI aplikaci.

Uživatelské rozhraní

V první řadě je to samozřejmě souřadnice kliknutí uživatele na obrázek:

<INPUT TYPE="IMAGE" NAME="mapa2" SRC=<? echo $url; ?> WIDTH=600 HEIGHT=400 BORDER=1>

Ty jsou předávány přes parametr mapa2.

Souřadnice kliknutí

V druhé řadě to jsou údaje o rozsahu zobrazené mapy v souřadnicích mapy:

<INPUT TYPE="HIDDEN" NAME="minx" VALUE=<? echo $rect->minx; ?>>
...

Všechny čtyři souřadnice získáváme z obdélníku, který je pojmenován rect. Tento nabízí vlastnosti minx, miny, maxx, a maxy. Daný obdélník je získán pomocí vlastnosti extent objektu mapa.

$rect = $mapa->extent;

Souřadnice rozsahu mapy

Dále jsou to údaje width a height, které udávají velikost obrázku v pixelech.

<INPUT TYPE="HIDDEN" NAME="width" VALUE=600>
<INPUT TYPE="HIDDEN" NAME="height" VALUE=400>

Šířka a výška mapy

V další kapitole se budeme zabývat i pořizováním bodů nad mapou a proto musíme rozlišit zda chce uživatel měnit měřítko mapy (resp. centrovat mapu) nebo zda chce umístit bod. K tomu nám slouží parametr mode (podobně jako u CGI).

<input type=radio name=mode value=browse <? if ($mode==browse) echo "checked"; ?>> Prohlížet

V případě, že je parametr mode roven hodnotě browse bude probíhat změna měřítka nebo centrování.

Akce uživatele

Dále musíme rozlišit, zda chce uživatel zvětšit nebo zmenšit měřítko, případně posunout (centrovat) mapu. To nám bude zajišťovat parametr zoomf.

<input type=radio name=zoomf value=2 <? if ($zoomf==2) echo "checked"; ?>> Zoom In
<input type=radio name=zoomf value=1 <? if ($zoomf==1) echo "checked"; ?>> Pan
<input type=radio name=zoomf value=-2 <? if ($zoomf==-2) echo "checked"; ?>> Zoom Out

Rozlišení mezi ZoomIn, ZoomOut a Pan

V další fázi musíme parametry zadané uživatelem zpracovat a provést zvolenou operaci. Tj. musíme se přesvědčit, zda uživatel zvolil některou z funkcí, resp. jakou zvolil.

Toto zpracování je demonstrováno rozšířením již uvedeného kódu (tučné řádky jsou nově přidané řádky):

<HTML>
<BODY>
<H1>Cviceni s PHP/MapScript</H1>
<?
//dl("php_mapscript.dll");
$mapfile = "prvni.map"; #9;
$mapa = ms_newMapObj($mapfile);

//*********Převzetí parametrů od uživatele**************

 
//místo kliknutí uživatele – souřadnice x v pixelech
$x = $HTTP_POST_VARS['mapa2_x'];
//místo kliknutí uživatele – souřadnice y v pixelech
$y = $HTTP_POST_VARS['mapa2_y'];
//přepínací tlačítko akce
$mode = $HTTP_POST_VARS['mode'];
//přepínací tlačítko Zoom...
$zoomf = $HTTP_POST_VARS['zoomf'];
//šířka obrázku v pixelech
$width = $HTTP_POST_VARS['width'];
//výška obrázku v pixelech
$height = $HTTP_POST_VARS['height'];
//rozsah zobrazené plochy v reálných souřadnicích
$minx = $HTTP_POST_VARS['minx'];
$miny = $HTTP_POST_VARS['miny'];
$maxx = $HTTP_POST_VARS['maxx'];
$maxy = $HTTP_POST_VARS['maxy'];

//*********Konec převzetí parametrů od uživatele****

 
//ověření zda uživatel zvolil nějakou funkci
//(resp. nejedná se o první spuštění)
if ($mode!="") {
//vytvoření nového objektu typu Rectangle
$rect2 = ms_newRectObj();
//nastavení rozsahu obdélníka v reálných souřadnicích
//rozsah (minx, ...) se předává v
//sekci setting the rectangle
$rect2->setextent($minx, $miny, $maxx, $maxy);
//vytvoření obdélníka v pixelech
$rect3 = ms_newRectObj();
$rect3->setextent(0, 0, 600, 400);
//zoom mapy na předchozí rozsah zapsaný níže
//resp. rozsah z předchozí akce uživatele
$mapa->zoomrectangle($rect3, $width, $height, $rect2);
}
//uživatel zvolil funkci Prohlížet(Browse)
if ($mode=="browse") {
//vytvoření nového Bodu
$pPoint = ms_newPointObj();
//nastavení souřadnic dle kliknutí uživatele
$pPoint->setXY($x, $y);
//získání obdélníka
$rect = $mapa->extent;
//zoom na bod
$mapa->zoompoint($zoomf, $pPoint, $width, $height, $rect);
}

//mapa má nový rozsah
//zapsání nového rozsahu do objektu rect
$rect = $mapa->extent;
//setting the rectangle
//zapsání nového rozsahu do stránky
//umístění všech parametrů do formuláře
?>
<FORM ACTION="prvni.php" METHOD=POST>
<INPUT TYPE="HIDDEN" NAME="minx" VALUE=<? echo $rect->minx; ?>>
<INPUT TYPE="HIDDEN" NAME="miny" VALUE=<? echo $rect->miny; ?>>
<INPUT TYPE="HIDDEN" NAME="maxx" VALUE=<? echo $rect->maxx; ?>>
<INPUT TYPE="HIDDEN" NAME="maxy" VALUE=<? echo $rect->maxy; ?>>
<?
$img = $mapa->draw();
$url = $img->saveWebImage(MS_PNG, 1, 1, 0);
?>
<INPUT TYPE="IMAGE" NAME="mapa2" SRC=<? echo $url; ?> WIDTH=600 HEIGHT=400 BORDER=1>
<INPUT TYPE="HIDDEN" NAME="width" VALUE=600> <!—šířka mapy -->
<INPUT TYPE="HIDDEN" NAME="height" VALUE=400> <!—výška mapy -->
<P>Akce:
<!—přepínací políčko na akci -->
<input type=radio name=mode value=browse <? if ($mode==browse) echo "checked"; ?>> Prohlížet
</P>
<P>Zoom:
<!—přepínací políčka -->
<input type=radio name=zoomf value=2 <? if ($zoomf==2) echo "checked"; ?>> Zoom In
<input type=radio name=zoomf value=1 <? if ($zoomf==1) echo "checked"; ?>> Pan
<input type=radio name=zoomf value=-2 <? if ($zoomf==-2) echo "checked"; ?>> Zoom Out
</P>

 
</FORM>

 
</BODY>
</HTML>

Zpracování události kliknutí uživatele a zvolené funkce

V úvodu přidaného kódu se převezmou všechny parametry, předávané od uživatele. Všechny parametry se nachází v systémovém poli HTTP_POST_VARS.

//místo kliknutí uživatele – souřadnice x v pixelech
$x = $HTTP_POST_VARS['mapa2_x'];
//místo kliknutí uživatele – souřadnice y v pixelech
$y = $HTTP_POST_VARS['mapa2_y'];
//přepínací tlačítko akce
$mode = $HTTP_POST_VARS['mode'];
//přepínací tlačítko Zoom...
$zoomf = $HTTP_POST_VARS['zoomf'];
//šířka obrázku v pixelech
$width = $HTTP_POST_VARS['width'];
//výška obrázku v pixelech
$height = $HTTP_POST_VARS['height'];
//rozsah zobrazené plochy v reálných souřadnicích
$minx = $HTTP_POST_VARS['minx'];
$miny = $HTTP_POST_VARS['miny'];
$maxx = $HTTP_POST_VARS['maxx'];
$maxy = $HTTP_POST_VARS['maxy'];

Převzetí parametrů

Dále je za všech okolností (resp. v případě volby jakékoliv funkce) provedena změna měřítka na rozsah předaný uživatelem. Tato operace musí být provedena vždy protože objekt mapa, který získáme v úvodu skriptu má vždy rozsah takový jaký je nadefinován v souboru prvni.map. Uživatel však již mohl provést změnu měřítka a tudíž jeho rozsah neodpovídá rozsahu v prvni.map.

if ($mode!="") {
//vytvoření nového objektu typu Rectangle
$rect2 = ms_newRectObj();
//nastavení rozsahu obdélníka v reálných souřadnicích
//rozsah (minx, ...) se předává v
//sekci setting the rectangle
$rect2->setextent($minx, $miny, $maxx, $maxy);
//vytvoření obdélníka v pixelech
$rect3 = ms_newRectObj();
$rect3->setextent(0, 0, 600, 400);
//zoom mapy na předchozí rozsah zapsaný níže
//resp. rozsah z předchozí akce uživatele
$mapa->zoomrectangle($rect3, $width, $height, $rect2);
}

Změna měřítka se provádí pomocí metody zoomrectangle, která vyžaduje obdélník v pixelech, rozměry obrázku v pixelech a obdélník v reálných souřadnicích.

Změna měřítka dle předchozího stavu na straně uživatele

V poslední fázi je provedena operace dle volby uživatele (tj. buď ZoomIn nebo ZoomOut nebo Pan).

if ($mode=="browse") {
//vytvoření nového Bodu
$pPoint = ms_newPointObj();
//nastavení souřadnic dle kliknutí uživatele
$pPoint->setXY($x, $y);
//získání obdélníka
$rect = $mapa->extent;
//zoom na bod
$mapa->zoompoint($zoomf, $pPoint, $width, $height, $rect);
}

Ke změně měřítka dle kliknutí uživatele se využívá funkce zoompoint, která vyžaduje faktor změny měřítka (-2: ZoomOut, 2: ZoomIn, 1: Pan), místo kliknutí v pixelech, rozměry obrázku v pixelech a obdélník (rozsah mapy) v reálných souřadnicích.

ZoomIn, ZoomOut, Pan

V prohlížeči zadejte adresu http://127.0.0.1/ms/prvni.php. Vyberte akci Prohlížet a funkci ZoomIn a klikněte do mapy. Výstup je zobrazen na dalším obrázku.

Testování

Obrázek 1-35: Výstup z prvni.php po ZoomIn.

Pokud jste neobdrželi uvedený výstup, podívejte se do průvodce studiem. Pokud ani tam nenajdete řešení vašeho problému postupujte podle pokynů uvedených v úvodu modulu.

Výstup z prvni.php po ZoomIn

 

PRŮVODCE STUDIEM 15

 

V případě problémů s kopírováním (přepisováním) kódu souboru jej naleznete na CD v adresáři ms/ pod názvem prvni_v3.php.

Zdroj na CD

 

Přestože máte kód v pořádku může dojít k několika chybovým hlášením. Dále je uvedeno jedno nejpravděpodobnější:

Chyby

 

Warning: MapServer Error in : in c:\program files\apache group\apache\htdocs\ms\prvni.php on line 58

Fatal error: zoomPoint failed : incorrect parameters in c:\program files\apache group\apache\htdocs\ms\prvni.php on line 58

Tato chyba ukazuje na nepředání parametru zoomf a to značí, že jste nevybrali přepínací políčko ZoomIn, vraťte se v prohlížeči o krok zpět, vyberte funkci ZoomIn a zkuste znovu.

Chyba - zoomPoint failed

 

26

1.9.3 Vykreslení bodů z tabulky databáze MS Access

Často se stává, že souřadnice (zejména bodových objektů) nejsou v ESRI Shapefile, ale jsou uloženy v tabulce relační databáze. Takováto data je možné s využitím PHP modulu vizualizovat v mapě.

Úvod

Na doprovodném CD naleznete databázi MS Access pojmenovanou Data.mdb. K tomu abychom mohli data z databáze MS Access vizualizovat s využitím PHP modulu, musíme provést registraci ODBC (Open database Connectivity) zdroje pro přístup k datům.

Následující obrázky ukazují postup registrace datového zdroje v operačním systému Windows 2000 (XP). V jiných operačních systémech typu Windows je registrace podobná (vychází se z Settings/Nastavení).

Registrace ODBC zdroje

Obrázek 1-36: Control Panel.

V nástroji Control Panel vybereme Administrative Tools (ve Windows 95, 98 a NT je nastavení ODBC přímo v Control Panel)

Control Panel

Obrázek 1-37: Administrative Tools.

V nástroji Administrative Tools vybereme nástroj Data Sources (ODBC).

Administrative Tools

Obrázek 1-38: ODBC Data Sources Administrator

V nástroji ODBC Data Sources Administrator zvolíme kartu System DSN a klikneme na tlačítko Add.

ODBC Data Sources Administrator

Obrázek 1-39: Create New Data Source

V průvodci Create New Data Source zvolíme ovladač Driver do Microsoft Access (*.mdb) a klineme na tlačítko Finish.

Create New Data Source

Obrázek 1-40: ODBC Microsoft Access Setup

V okně ODBC Microsoft Access Setup vyplníme pole data Source Name (uvedeme Prvni). Pole Description je nepovinné. Dále klikneme na tlačítko Select pro výběr souboru Data.mdb.

ODBC Microsoft Access Setup

Obrázek 1-41: Výběr databáze

V okně Select Database pomocí průchodu adresáři vybereme soubor Data.mdb. Odklikáním tlačítek OK ukončíme celý proces registrace datového zdroje.

Výběr databáze

Pro vykreslení bodů potřebujeme mít v mapové kompozici bodovou vrstvu. Daná bodová vrstva nemusí ukazovat na žádný zdroj (parametr DATA může být vypuštěn). Do souboru prvni.map doplňte následující kód:

LAYER
NAME 'mesta'
TYPE point
STATUS on
CLASS
NAME 'Mesta'
COLOR 0 0 255
SYMBOL 1
SIZE 5
END # CLASS
END # LAYER

Úprava souboru MAP

 

PRŮVODCE STUDIEM 16

 

V případě problémů s kopírováním (přepisováním) kódu souboru jej naleznete na CD v adresáři ms/ pod názvem prvni_v11.map.

Zdroj na CD

 

Do souboru prvni.php přidáme několik řádků kódu, které zajistí vykreslení bodů z databáze. Přidané řádky jsou zvýrazněny tučně:

...
$img = $mapa->draw();

 
//název vrstvy pro umístění bodů
$lyrname = "mesta";
//získání objektu typu Layer
$lyr = $mapa->getLayerByName($lyrname);
//spojení s databází
$con=odbc_connect("Prvni", "", "");
//nový objekt - prázdný bod
$oPoint = ms_newPointObj();
//SQL dotaz
$SQL = "SELECT * FROM Body";
//získání recordsetu (sady záznamů)
$res=odbc_exec($con, $SQL);

 
//cyklus po jednotlivých záznamech recordsetu
do {
//získání hodnoty z položky x
$cx=odbc_result($res, "x");
//získání hodnoty z položky y
$cy=odbc_result($res, "y");
//nastavení souřadnic pro bod
$oPoint->setXY($cx, $cy);
//vykreslení bodu
$oPoint->draw($mapa, $lyr, $img, 0, "");
//další záznam – v případě konce recordsetu vrací -1
} while (odbc_fetch_row($res));

 
//uvolnění bodu z paměti
$oPoint->free();
//uzavření spojení s databází
odbc_close($con);

 
$url = $img->saveWebImage(MS_PNG, 1, 1, 0);
...

Část kódu prvni.php – vykreslení bodů z databáze

Vlastní vykreslení zajišťuje metoda draw objektu oPoint. Tato metoda vyžaduje objekt mapa, objekt lyr (vrstva), objekt img. Další parametry jsou nepodstatné.

$oPoint->draw($mapa, $lyr, $img, 0, "");

Souřadnice bodů jsou čteny z tabulky Body databáze Data.mdb, kterou jsme zaregistrovali přes ODBC jako zdroj pod názvem Prvni.

 

V prohlížeči zadejte adresu http://127.0.0.1/ms/prvni.php. Výstup je zobrazen na dalším obrázku.

Testování

Obrázek 1-42: Výstup z prvni.php – vykreslení bodů z databáze.

Pokud jste neobdrželi uvedený výstup, podívejte se do průvodce studiem. Pokud ani tam nenajdete řešení vašeho problému postupujte podle pokynů uvedených v úvodu modulu.

Výstup z prvni.php – vykreslení bodů z databáze

 

PRŮVODCE STUDIEM 17

 

V případě problémů s kopírováním (přepisováním) kódu souboru jej naleznete na CD v adresáři ms/ pod názvem prvni_v4.php.

Zdroj na CD

 

27

1.9.4 Zápis bodů do tabulky databáze na základě kliknutí uživatele

Díky uložení bodů v relační databázi Data.mdb, můžeme uživateli nabídnout možnost pořizovat vlastní body, klikáním v mapě. Kliknutí v mapě může být doplněno formulářem pro atributové údaje k tomuto bodu (tímto se však zabývat nebudeme).

Úvod

V první řadě musíme upravit uživatelské rozhraní v souboru prvni.php:

<P>Akce:
<!—přepínací políčko na akci -->
<input type=radio name=mode value=browse <? if ($mode==browse) echo "checked"; ?>> Prohlížet
<input type=radio name=mode value=setpoint <? if ($mode==setpoint) echo "checked"; ?>> Vložit bod
</P>

Přidání funkce do uživatelského rozhraní

V dalším kroku musíme upravit prvni.php tak, aby byl schopen zpracovat akci Vložit bod (setpoint) zvolenou uživatelem. Následující část kódu toto řeší:

...
//spojení s databází
$con=odbc_connect("Prvni", "", "");

 
//pokud uživatel chce umístit bod
if ($mode=="setpoint") {
//výpočet měřítka
$scale = ($rect->maxx - $rect->minx) / $mapa->width; //výpočet souřadnice x
$x1 = $rect->minx + ($scale * $x);
//výpočet souřadnice y
$y1 = $rect->maxy - ($scale * $y);
//SQL pro insert
$SQL = "INSERT INTO BODY (X, Y) VALUES ($x1, $y1)";
//zápis hodnot
$res=odbc_exec($con, $SQL);
}

 
//nový objekt - prázdný bod
$oPoint = ms_newPointObj();
...

Zpracování vložení bodu

V první řadě dojde k výpočtu měřítka mapy, následně k přepočítání souřadnic kliknutí do souřadnic mapy a následně ke spuštění SQL příkazu INSERT, který vloží bod do tabulky Body.

 

V prohlížeči zadejte adresu http://127.0.0.1/ms/prvni.php. Vyberte akci Vložit bod a klikněte do mapy. Výstup je zobrazen na dalším obrázku.

Testování

Obrázek 1-43: Přidání bodu do databáze.

Pokud jste neobdrželi uvedený výstup, podívejte se do průvodce studiem. Pokud ani tam nenajdete řešení vašeho problému postupujte podle pokynů uvedených v úvodu modulu.

Přidání bodu do databáze.

 

PRŮVODCE STUDIEM 18

 

V případě problémů s kopírováním (přepisováním) kódu souboru jej naleznete na CD v adresáři ms/ pod názvem prvni_v5.php.

Zdroj na CD

 

SHRNUTÍ KAPITOLY UMN MAP SERVER

 

V uvedené kapitole jste si prakticky vyzkoušeli instalaci produktu UMN MapServer a vytvoření jednoduché kompozice. Pokud jste poctivě prošli všemi úkoly měli byste umět:

· Vytvořit jednoduchou mapovou kompozici (nadefinovat vrstvy a jejich vzhled)

· Vytvořit kompozici s měřítkem a legendou

· Zatřídit prvky do několika kategorií

· Nastavit měřítkové omezení na vrstvě

· Implementovat základní funkce elektronicky publikované mapy (změnu měřítka, posun a zobrazení údajů o vybraném objektu v mapě)

Pokud jste se rovněž rozhodli věnovat práci s PHP modulem máte následující schopnosti:

· Prezentovat mapovou kompozici s využitím PHP skriptu

· Implementovat základní nástroje (změna měřítka, posun)

· Zobrazit body v mapě jejichž souřadnice jsou uloženy v tabulce relační databáze

· Implementovat nástroj pro pořizování bodové reprezentace geoprvků klikáním uživatele v mapě

Shrnutí

 

PRŮVODCE STUDIEM 19

 

V následující kapitole si můžete prakticky vyzkoušet odlišný přístup v publikování prostorových dat na Internetu, kdy je veškerá činnost aplikace přenesena na klientskou stranu. Jedná se tedy o řešení bez použití mapového serveru. Pro vyzkoušení tohoto principu byl zvolen jednoduchý volně dostupný nástroj JShape.

Průchod modulem

 

28

2 JSHAPE

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY JSHAPE

 
 

Kapitola JShape je zaměřena na praktické zvládnutí práce s volně dostupným produktem JShape. V rámci tohoto cvičení bude prezentován celý postup od instalace až po vytvoření účelové aplikace.

Hlavní část je věnována postupu tvorby mapové kompozice od definování jednotlivých částí až po jejich modifikaci (parametrizaci)

Poslední část je věnována základům programování s JShape.

Rychlý náhled

 

CÍLE KAPITOLY JSHAPE

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

· Vytvořit jednoduchou prezentaci prostorových dat s využitím produktu JShape.

Budete umět

   

Získáte:

· Detailní představu o fungování produktu JShape

· Základní informaci o programování pro JShape.

Získáte

   

Budete schopni:

· V mapové kompozici začlenit geoprvky do několika tříd

Budete schopni

 

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 120 minut.

 

 

 

KLÍČOVÁ SLOVA KAPITOLY JSHAPE

 
 

JShape, JShape script, Java applet

Klíčová slova

 

PRŮVODCE STUDIEM 20

 

Zaměřte se na:

· Vytvoření základní mapové kompozice

 

 

29

2.1 Instalace

Výhodou produktu JShape je bezesporu to, že neklade žádné nároky na server, na který se „instaluje“. Je tedy snadno přenositelný mezi platformami. JShape je Java applet a veškeré operace s prostorovými daty provádí samotný applet běžící na straně klienta.

Úvod

Vlastní JShape je jeden soubor ZIP, který najdete na CD v adresáři ms\JShape pod názvem jshape.zip.

Tento soubor umístěte do adresáře wwwroot\jshape. Adresář wwwroot\jshape bude adresářem, ve kterém budeme celou dobu našeho cvičení pracovat.

Instalace

 

PRŮVODCE STUDIEM 21

 

Testování „instalace“ proběhne až po vytvoření prázdné mapové kompozice.

Testování instalace

 

30

2.2 První mapová kompozice

Pro mapovou kompozici budeme používat stejná data jako v případě produktu MapServer. Z důvodu přehlednosti zkopírujte adresář DataSHP do adresáře ...wwwroot\jshape.

Mapová kompozice se definuje jako HTML soubor, přičemž jednotlivé prvky kompozice se specifikují jako parametry Java appletu.

Úvod

 

31

2.2.1 Prázdná kompozice

Vytvořte soubor druhy.html a umístěte jej do adresáře wwwroot\jshape.

Prázdná kompozice

Do souboru umístěte následující kód:

<html>
<head>
<META HTTP-Equiv="Content-Type" CONTENT="text/html; charset=windows-1250">
<title>CR - cvicne</title></head>
<body bgcolor=#FFFFFF>
<center><h1>ČR</h1>
<applet code="jshape.class" width=700 height=500 archive="jshape.zip"> <!-- odkaz na applet -->
<!-- hlavička projektu -->
<param name="project" value=""> <!-- název projektu -->
<param name="mbcolor" value=""> <!-- barva pozadí mapy -->
<param name="list" value=""> <!-- seznam zobrazovaných vrstev -->
<!-- konec hlavičky -->
<!-- definice vrstvy 1 -->
<param name="layer1" value=""> <!-- název vrstvy - neco.shp -->
<param name="info1" value=""> <!-- název atributové tabulky - neco.dbf -->
<param name="title1" value=""> <!-- popisek vrstvy -->
<param name="fcolor1" value=""> <!-- barva popředí -->
<param name="bcolor1" value=""> <!-- barva pozadí -->
<param name="lcolor1" value=""> <!-- barva popisku -->
<param name="size1" value=""> <!-- velikost symbolu - linie, bod -->
<param name="enable1" value=""> <!-- viditelnost - ON/OFF-->
<!-- konec definice vrstvy 1 -->
</applet>

 
</center>
</body></html>

Jak je patrné z kódu kompozice se definuje pomocí parametrů Java appletu. Každý parametr má přesný název.

Kód

 

PRŮVODCE STUDIEM 22

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/jshape/ pod názvem druhy1.html.

Zdroj na CD

 

Na připravené prázdné kompozici ověříme správnost instalace produktu. V prohlížeči zadejte adresu: http://127.0.0.1/jshape/druhy.html

Výsledek je zobrazen na následujícím obrázku.

Testování instalace

Obrázek 2-1: Prázdná kompozice – uživatelské prostředí

Prázdná kompozice – uživatelské prostředí

V případě, že se vám nezobrazí prostředí Jshape, tak jak je uvedeno na předchozím obrázku, obvykle nastávají dva případy, které jsou dokumentovány dále. V případě jiné situace kontaktuje svého tutora.

Chybová hlášení

Obrázek 2-2: Chyba1

Obrázek dokumentuje situaci, kdy WWW prohlížeč nemůže najít potřebný applet. To se projeví chybovým hlášením (load: class jshape not found) ve stavovém řádku WWW prohlížeče v okamžiku umístění kurzoru nad applet.

Přesvědčete se, že se soubor jshape.zip nachází ve stejném adresáři jako soubor druhy.html a zkuste znovu.

Chyba1

Obrázek 2-3: Chyba2

Obrázek dokumentuje situaci, kdy WWW prohlížeč nemůže najít potřebný HTML soubor.

Přesvědčete se, že se soubor druhy.html nachází v adresáři ...wwwroot/jshape a zkuste znovu.

Chyba2

 

32

2.2.2 Doplnění hodnot parametrů

Hlavička mapové kompozice je jednoduchá. Obsahuje pouhé tři parametry.

<!-- hlavička projektu -->
<param name="project" value=""> <!-- název projektu -->
<param name="mbcolor" value=""> <!-- barva pozadí mapy -->
<param name="list" value=""> <!-- seznam zobrazovaných vrstev -->
<!-- konec hlavičky -->

project

Název projektu, který se objeví nad nástrojovou lištou.

mbcolor

Barva pozadí mapy. HTML kód.

list

Seznam čísel zobrazených vrstev. Čísla se oddělují čárkou.

Doplníme kód následujícím způsobem:

<!-- hlavička projektu -->
<param name="project" value="ČR"> <!-- název projektu -->
<param name="mbcolor" value="#FFFFFF"> <!-- barva pozadí mapy -->
<param name="list" value="1"> <!-- seznam zobrazovaných vrstev -->
<!-- konec hlavičky -->

Hlavička může obsahovat více parametrů. O některých dalších se dozvíte později.

Hlavička

Definice vrstvy vypadá následovně:

<!-- definice vrstvy 1 -->
<param name="layer1" value=""> <!-- název vrstvy - neco.shp -->
<param name="info1" value=""> <!-- název atributové tabulky - neco.dbf -->
<param name="title1" value=""> <!-- popisek vrstvy -->
<param name="fcolor1" value=""> <!-- barva popředí -->
<param name="bcolor1" value=""> <!-- barva pozadí -->
<param name="lcolor1" value=""> <!-- barva popisku -->
<param name="size1" value=""> <!-- velikost symbolu - linie, bod -->
<param name="enable1" value=""> <!-- viditelnost - ON/OFF-->
<!-- konec definice vrstvy 1 -->

layer1

Název SHP souboru k zobrazení (např. mesta.shp).

info1

Název DBF souboru k zobrazení (např. mesta.dbf).

title1

Název vrstvy, který se zobrazí v legendě.

fcolor1

Obrysová barva. HTML kód.

bcolor1

Barva výplně. HTML kód. – pouze u polygonů.

lcolor1

Barva popisku. HTML kód.

size1

Velikost symbolu (bod), tloušťka čáry (linie). V pixelech.

enable1

Volba ON/OFF. Zapnuto/vypnuto.

 

Vrstva

Doplníme kód následujícím způsobem:

<!-- definice vrstvy 1 -->
<param name="layer1" value="DataSHP/vusc.shp">
<param name="info1" value="DataSHP/vusc.dbf">
<param name="title1" value="Města">
<param name="fcolor1" value="#808080">
<param name="bcolor1" value="#E6FFE6">
<param name="lcolor1" value="blue">
<param name="size1" value="1">
<param name="enable1" value="ON">
<!-- konec definice vrstvy 1 -->

 

PRŮVODCE STUDIEM 23

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/jshape/ pod názvem druhy_v2.html.

Zdroj na CD

 

V prohlížeči zadejte adresu: http://127.0.0.1/jshape/druhy.html

Výsledek je zobrazen na následujícím obrázku.

Testování kompozice

Obrázek 2-4: Kompozice s jednou vrstvou

Kompozice s jednou vrstvou

 

SAMOSTATNÝ ÚKOL 5

 

Modifikujte soubor druhy.html tak aby kompozice obsahovala další dvě vrstvy (silnice a města). Nezapomeňte, že musíte uvést seznam vrstev:
<param name="list" value="3,2,1">

Kompozice se třemi vrstvami

 

Obrázek 2-5: Kompozice se třemi vrstvami

 

 

ŘEŠENÍ A ODPOVĚDI, NÁVODY

 

Soubor s řešením naleznete na CD v adresáři ms/jshape/ pod názvem ukol5.html

 

 

33

2.3 Začlenění krajů do kategorií

Stejně jako v případě produktu MapServer je možné vytvářet třídy objektů a těm přiřazovat různé symboly pro vykreslení. Stejně jako v případe MapServeru vytvoříme tři třídy podle počtu obyvatel v krajském městě (méně než 100 tis., 100 tis. – 300 tis., více než 300 tis.)

Úvod

V případě Jshape se deklarace tříd provádí v externím souboru. Vytvoříme proto soubor kraje.tmt a umístíme jej do stejného adresáře jako je soubor druhy.html.

 

Do souboru kraje.tmt napíšeme následující kód:

# ID pole
4
# Definice tříd
#
#[Description],[Expression],[ForegroundColor],
#[BackgroundColor],[SymbolSize]
<= 100000, <= 100000, null, #F4B4B4, 1
> 100000 a <= 300000, > 100000 and <= 300000, null, #F48C8C, 1
> 300000, > 300000, null, #F46464, 1

Řádky uvozené znakem # jsou komentáře. Prvním interpretovaným řádkem tedy je číslo 4. To udává pořadí atributové položky, podle které má být zatřídění provedeno. V našem případě je pole udávající počet obyvatel v krajském městě (KMOBYV) na čtvrtém místě.

Další tři řádky, které se interpretují mají stejnou strukturu, která je v kódu vysvětlena komentářem. Tyto řádky definují samotné třídy. Definici každé třídy je tedy tvořena seznamem pěti hodnot oddělených čárkami.

První hodnota je popisek, který se objeví v legendě. Druhá hodnota je definice podmínky pro zatřídění (podobně jako EXPRESSION u MapServeru). Další tři v pořadí udávají barvu čáry, barvu výplně a velikost čáry (symbolu).

Kód kraje.tmt

Definici vrstvy v souboru druhy.html musíme s vytvořeným souborem asociovat. To provedeme přidáním dvou řádků do soboru druhy.html k definici vrstvy kraje.

Část výsledného kódu bude vypadat následujícím způsobem (tučně jsou vyznačeny přidané řádky):

<!-- definice vrstvy 1 -->
<param name="layer1" value="DataSHP/vusc.shp">
<param name="info1" value="DataSHP/vusc.dbf">
<param name="title1" value="Kraje">
<param name="fcolor1" value="#808080">
<param name="bcolor1" value="#E6FFE6">
<param name="lcolor1" value="blue">
<param name="size1" value="1">
<param name="enable1" value="ON">
<param name="thematic1" value="kraje.tmt"> <!-- název souboru -->
<param name="tmenable1" value="ON"> <!-- viditelnost -->
<!-- konec definice vrstvy 1 -->

Úprava souboru druhy.html (asociace s kraje.tmt)

 

PRŮVODCE STUDIEM 24

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/jshape/ pod názvem druhy_v4.html a kraje_v1.tmt.

Zdroj na CD

 

V prohlížeči zadejte adresu: http://127.0.0.1/jshape/druhy.html

Výsledek je zobrazen na následujícím obrázku.

Testování kompozice

Obrázek 2-6: Kraje zatříděné podle počtu obyvatel v krajském městě

Kraje zatříděné podle počtu obyvatel v krajském městě

 

SAMOSTATNÝ ÚKOL 6

 

Modifikujte soubor kraje.tmt tak, aby se kraje rozdělily do tříd podle počtu komárů na osobu (<= 10000, >.10000 a <= 20000, > 20000). Počty jsou uvedeny v poli KOMARI (pořadí 5).

Třídy podle počtu komárů

 

Obrázek 2-7: Třídy podle počtu komárů

Třídy podle počtu komárů

 

ŘEŠENÍ A ODPOVĚDI, NÁVODY

 

Soubor s řešením naleznete na CD v adresáři ms/jshape/ pod názvem ukol6.tmt

 

 

34

2.4 Nastavení češtiny pro nabídky a tlačítka

Vzhled appletu Jshape je možné upravovat do té míry, že je možné změnit hodnoty popisků na tlačítcích a v položkách nabídek celého uživatelského prostředí.

Úvod

To se opět řeší pomocí parametrů appletu. K dispozici je následující seznam parametrů:

MenuBarFileText, MenuBarEditText, MenuBarCommandText, MenuBarLayerText, MenuBarHelpText, MenuItemPrintMapText, MenuItemPrintStatusText, MenuItemCopyText, MenuItemLabelOnText, MenuItemLabelOffText, MenuItemTopLayerText, MenuItemBottomLayerText, MenuItemUpLayerText, MenuItemDownLayerText, MenuItemHelpText, MenuItemAboutText, ButtonUnZoomText, ButtonZoomInText, ButtonZoomOutText, ButtonPanText, ButtonIdentifyText, ButtonSelectText, ButtonClearText, ButtonExecuteText, ButtonQueryText, ButtonLoadText, ButtonSaveText, CommandHelpText

Parametry začínající spojením MenuBar představují nabídky appletu. Parametry začínající spojením MenuItem představují položky z nabídek appletu. Parametry začínající spojením Button představují tlačítka appletu.

Parametry

Do souboru druhy.html doplňte následující parametry appletu:

<param name="MenuBarCommandText" value="Příkaz">
<param name="MenuItemPrintMapText" value="Tiskni">
<param name="ButtonZoomInText" value="Přiblížit">

Úprava uživatelského rozhraní

 

PRŮVODCE STUDIEM 25

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/jshape/ pod názvem druhy_v5.html.

Zdroj na CD

 

V prohlížeči zadejte adresu: http://127.0.0.1/jshape/druhy.html

Výsledek je zobrazen na následujícím obrázku.

Testování kompozice

Obrázek 2-8: Upravené uživatelské rozhraní

Z obrázku je patrné, že text nabídky Command byl nahrazen textem Příkaz, Text položky z nabídky Print nazvaný Print Map byl nahrazen textem Tiskni a text na tlačítku Zoom In nahrazen textem Přiblížit.

Upravené uživatelské rozhraní

 

SAMOSTATNÝ ÚKOL 7

 

Modifikujte soubor druhy.html tak, aby byly všechny anglické texty na tlačítkách byly nahrazeny českými.

Úprava uživatelského rozhraní

 

Obrázek 2-9: Úprava uživatelského rozhraní

Úprava uživatelského rozhraní komárů

 

ŘEŠENÍ A ODPOVĚDI, NÁVODY

 

Soubor s řešením naleznete na CD v adresáři ms/jshape/ pod názvem ukol7.html

 

 

35

2.5 Programování pro JShape

K samotnému appletu je možné programovat jednoduché i komplexnější funkce. Vývoj funkcí může probíhat buď v jednoduchém skriptovacím jazyce nebo s využitím jazyka Java.

V následujícím cvičení si vyzkoušíme vytvořit jednoduchý skript, který vypíše údaje o vybraných městech v mapě.

Úvod

K tvorbě skriptů využijeme jednoduchý ASCII editor. Skript sestává z posloupnosti příkazů. V současné době těchto příkazů Jshape nabízí více než sto. Pro další příkazy musíte nahlédnout do dokumentace k produktu na stránkách producenta.

Pravidla tvorby skriptů

Vytvoříme soubor cr.cmd, který uložíme do stejného adresáře, ve kterém je soubor druhy.html.

Vytvoření souboru se skriptem

Samotný soubor má následující strukturu:

@Název skriptu 1
Příkaz Jshape 1
Příkaz Jshape 2
...
Příkaz Jshape N

 
@Název skriptu 2
Příkaz Jshape 1
Příkaz Jshape 2
...
Příkaz Jshape N
...
@Název skriptu N
Příkaz Jshape 1
Příkaz Jshape 2
...
Příkaz Jshape N

Struktura souboru

Jednotlivé skripty se projeví jako položky v nabídce Command (Příkaz).

 

Do souboru cr.cmd umístěte následující kód (resp. pouze levý sloupec tabulky, pravý sloupec obsahuje vysvětlení).

Skript

Popis řádků

@Výpis Měst

Příkaz v nabídce „Command“

Status=12

Zvětšení stavového okna pro výpis

ShowStatus=[Výpis Měst] :\n

Zobrazení textu do stavového okna :\n – značí nový řádek

ActLayer=Města

Nastavení aktivní vrstvy

Enable=On

Zpřístupnění

Lfield=3

Nastavení aktivního pole (Procento kuřáků)

ExportHeader=“Id : | ,\tMěsto : | ,\ Procento kuřáků: |“

Nastavení hlavičky pro tisk hodnot atributů pro vybrané objekty. \t značí tabulátor. Pipa odděluje sloupce.

ExportAll

Tisk hodnot atributů vybraných objektů

ShowStatus=“Celkem „

Zobrazení textu do stavového okna

ShowExportCount

Tisk počtu záznamů

ShowStatus= Vybraných měst\n

Zobrazení textu do stavového okna

ShowStatus=“Celkem : „

Zobrazení textu do stavového okna

ShowExportSum

Tisk součtu hodnot v aktivním poli

ShowStatus=\n

 

ShowStatus=“Průměr : „

 

ShowExportAvg

Tisk průměru hodnot v aktivním poli

ShowStatus=\n

 

Lfield=1

Nastavení aktivního pole

 

 

@Velké stavové okno

Příkaz v nabídce „Command“

Status=12

Změna velikosti stavového okna

 

 

@Malé stavové okno

Příkaz v nabídce „Command“

Status=3

Změna velikosti stavového okna

Skripty pro výpis atributů a změnu velikosti stavového okna

 

PRŮVODCE STUDIEM 26

 

V případě problémů s kopírováním (přepisováním) kódu souborů naleznete na CD v adresáři ms/jshape/ pod názvem cr_v1.cmd.

Zdroj na CD

 

V prohlížeči zadejte adresu: http://127.0.0.1/jshape/druhy.html

Pomocí nástroje Select (Výběr) vyberte několik měst. Z nabídky Command (Příkaz) vyberte položku Výpis Měst. Do stavového řádku by se měly vypsat údaje o vybraných městech.Výsledek je zobrazen na následujícím obrázku.

Testování skriptu

Obrázek 2-10: Výstup ze skriptu

Výstup ze skriptu

 

KORESPONDENČNÍ ÚKOL 1

 

Po vyzkoušení dvou volně dostupných programových vybavení, určených pro publikování prostorových dat v prostředí Internetu, můžete přistoupit k závěrečnému korespondenčnímu úkolu. Tento úkol je komplexnějšího charakteru a předpokládá se, že při jeho zpracovávání můžete zároveň studovat volitelný modul Rozšířené možnosti publikování.

Cílem závěrečného úkolu je připravit prezentaci svých vlastních dat s využitím některého, pro vás dostupného, nástroje pro publikování prostorových dat v prostředí Internetu a připravit dokument popisující dané řešení.

Dokument popisující dané řešení by měl obsahovat následující informace: základní údaje o organizaci publikující data, základní informace o uživatelích, formáty prostorových dat, které využíváte, základní charakteristiku technického vybavení (klienti, server, síť), základní informace o programovém vybavení, které bylo využito pro zpracování, informace o vzniklých problémech a jejich řešení.

Dokument spolu s URL (WWW) adresou zpřístupněné prezentace (případně včetně uživatelského jména a hesla, kvůli zabezpečení) zašlete k hodnocení tutorovi. URL adresu včetně dokumentu můžete rovněž zpřístupnit v diskusním fóru on-line systému.

Celou koncepci, včetně praktické ukázky budete prezentovat na závěrečném tutorialu.

Závěrečný úkol - prezentace vlastních dat

 

SHRNUTÍ KAPITOLY JSHAPE

 

Pokud jste poctivě prošli všemi úkoly umíte:

· Vytvořit jednoduchou mapovou kompozici pro JShape

· Vytvořit třídy geoprvků v mapové kompozici pro JShape

· Napsat jednoduchý skript pro JShape

Shrnutí

36

SHRNUTÍ MODULU PRAKTICKÁ CVIČENÍ

 

V kapitole UMN MapServer jste si prakticky vyzkoušeli instalaci produktu UMN MapServer a vytvoření jednoduché kompozice. Pokud jste poctivě prošli všemi úkoly měli byste umět:

· Vytvořit jednoduchou mapovou kompozici (nadefinovat vrstvy a jejich vzhled)

· Vytvořit kompozici s měřítkem a legendou

· Zatřídit prvky do několika kategorií

· Nastavit měřítkové omezení na vrstvě

· Implementovat základní funkce elektronicky publikované mapy (změnu měřítka, posun a zobrazení údajů o vybraném objektu v mapě)

Pokud jste se rovněž rozhodli věnovat práci s PHP modulem máte následující schopnosti:

· Prezentovat mapovou kompozici s využitím PHP skriptu

· Implementovat základní nástroje (změna měřítka, posun)

· Zobrazit body v mapě jejichž souřadnice jsou uloženy v tabulce relační databáze

· Implementovat nástroj pro pořizování bodové reprezentace geoprvků klikáním uživatele v mapě

Pokud jste poctivě prošli všemi úkoly kapitoly JSHAPE umíte:

· Vytvořit jednoduchou mapovou kompozici pro JShape

· Vytvořit třídy geoprvků v mapové kompozici pro JShape

· Napsat jednoduchý skript pro JShape

Shrnutí modulu

 

KLÍČOVÁ SLOVA MODULU PRAKTICKÁ CVIČENÍ

 
 

MapServer, University of Minesota, UMN, UMN MapServer PHP Modul, PHP, Mapová kompozice, JShape, JShape script, Java applet.

Klíčová slova

 

DOPLŇUJÍCÍ ZDROJE

BOSS Ken. Mapplet HOWTO [online]. Minesota, 2001-09-19 [cit. 2003-05-25]. Dostupné na World Wide Web: < http://mapserver.gis.umn.edu/doc36/mapplet-howto.html>.

DOYON, Jean-François. MapFile Reference - MapServer 3.6 [online]. Minesota, 2002-15-06 [cit. 2003-05-25]. Dostupné na World Wide Web: < http://mapserver.gis.umn.edu/doc36/mapfile-reference.html>.

JShape Software. JShape Script [online]. 2001 [cit. 2003-05-25]. Dostupné na World Wide Web: <http://www.jshape.com/script.htm >.

JShape Software. Advanced JShape [online]. 2001 [cit. 2003-05-25]. Dostupné na World Wide Web: <http://www.jshape.com/advance.htm>.

KOORMANN Frank. MapServer Template Reference [online]. Minesota, 2001-12-28 [cit. 2003-05-25]. Dostupné na World Wide Web: < http://mapserver.gis.umn.edu/doc36/template-reference.html>.

LIME Stephen, KOORMANN Frank. MapServer CGI Reference [online]. Minesota, 2002-01-31 [cit. 2003-05-25]. Dostupné na World Wide Web: <http://mapserver.gis.umn.edu/doc36/cgi-reference.html >.

McKENNA, Jeff. Mapserver PHP/MapScript Class Reference [online]. Canada, 2003-04-06 [cit. 2003-05-25]. Dostupné na World Wide Web: < http://mapserver.gis.umn.edu/doc36/phpmapscript-class-guide.html>.

McKENNA, Jeff. Mapserver WMS Server HOWTO [online]. Canada, 2002-07-15 [cit. 2003-05-25]. Dostupné na World Wide Web: < http://mapserver.gis.umn.edu/doc36/wms-server-howto.html>.

PHP Documentation Group. PHP Manual [online]. 2003-05-30 [cit. 2003-05-30]. Dostupné na World Wide Web: <http://www.php.net/manual/en/>.

Regents of the University of Minnesota. MapServer Utility Programs [online]. Minesota, 2001 [cit. 2003-05-25]. Dostupné na World Wide Web: < http://mapserver.gis.umn.edu/doc36/utils.html>.

Web

 

13

SEZNAM POUŽITÝCH ZNAČEK, SYMBOLŮ A ZKRATEK

INFORMATIVNÍ, NAVIGAČNÍ, ORIENTAČNÍ

Průvodce studiem

Průvodce textem, podnět, otázka, úkol

Shrnutí

Tutoriál

Čas potřebný k prostudování

Nezapomeň na odměnu a odpočinek

KE SPLNĚNÍ, KONTROLNÍ, PRACOVNÍ

Kontrolní otázka

Samostatný úkol

Test a otázka

Řešení a odpovědi, návody

Korespondenční úkoly

VÝKLADOVÉ

K zapamatování

Řešený příklad

Definice

Věta

NÁMĚTY K ZAMYŠLENÍ, MYŠLENKOVÉ, PRO DALŠÍ STUDIUM

Úkol k zamyšlení

Část pro zájemce

Další zdroje

VLASTNÍ ZNAČKY, SYMBOLY, ZKRATKY

G

Vládní výdaje

HK

© Jan Růžička, 2003

Regionální centrum celoživotního vzdělávání

VŠB – Technická univerzita Ostrava

ISBN 80 – 248 - 0416 - 6