Vytvoření nového projektu
Obsah
Úvod
V následující kapitole je demonstrován postup při vytváření projektu s
názvem "TMS_DEMO", který se nachází v adresáři tms/examples/example1
(všechny adresáře aplikačního serveru jsou odvozeny relativně od kořenového
adresáře T-MapServeru).
Tento funkční projekt je ukázkou části možností aplikačního serveru a my Vám budeme
krok po kroku ukazovat, jak tento projekt vznikl.
Postup založení nového projektu T-MapServeru
1. Vytvoření projektu mapového serveru
Náš příklad pracuje nad mapovým serverem MapServer a v
konfiguraci tohoto serveru
je popsána adresářová struktura jeho projektů, dat atd. Pro náš projekt "TMS_DEMO"
musel vzniknout adresář data/demo (stejně jako u aplikačního serveru jsou
adresáře MapServeru odvozeny relativně od jeho kořenového adresáře) s geografickými
a popisnými daty a adresář
projects/demo, kde leží mapový projekt MapServeru demo.map. Tento
projekt musel být připraven způsobem popsaným v
konfiguraci MapServeru a představuje
základní nastavení mapy pro aplikační server.
2. Založení a konfigurace konektoru (napojení) na mapový server
V adresáři tms/.admin/connector/project se nacházejí konektory
na jednotlivé projekty mapových serverů, ale také na tabulky databázových serverů s popisnými
informacemi. Pro náš projekt "TMS_DEMO" byl vytvořen konektor demo, který se nachází v souboru
demo.inc (název souboru je určen názvem konektoru a příponou .inc). Tento soubor definuje
asociativní pole CONNECTOR, které obsahuje řadu vlastností pro komunikaci mezi mapovým serverem a
T-MapServerem.
Popis vlastnosti pole CONNECTOR
-
dir - adresář projektu T-MapServeru (relativně od kořenového adresáře)
-
servers - pole mapových nebo databázových serverů (každý je reprezentován asociativním polem),
na kterých běží stejný projekt. Každý server musí mít nastavenou vlastnost type, která určuje
typ serveru.
Možné hodnoty vlastnosti type:
-
MapServer - mapový server MapServer
-
MapScript - modul do PHP pro MapServer
-
ArcIMS - mapový server ArcIMS
-
OpenGIS - mapový server splňující OpenGIS specifikace WMS 1.0
-
Table - libovolný databázový server podporovaný v PHP
-
algorithm - typ algoritmu pro vyvažování zátěže, který se má použít pro výběr serveru z nabízených serverů
(typ algoritmu nabývá těchto hodnot: "random" - náhodný výběr s volitelnou pravděpodobností, "user_access" - střídání
serverů pro každého uživatele zvlášť, "load_balance" - experimentalní algoritmus pro dynamické vyvažování zátěže)
Každý server má kromě vlastnosti type ještě další vlastnosti:
MapServer a MapScript mají vlastnosti:
-
server - URL cesta k CGI aplikaci nebo PHP skriptu
-
project - cesta k projektu mapového serveru
Server OpenGIS má pouze vlastnost:
-
server - URL mapového serveru
ArcIMS má tyto vlastnosti:
-
server - URL mapového serveru
-
port - číslo portu
-
servlet - cesta k servletu
-
service_name - název mapové služby
Server Table reprezentuje tabulku, která obsahuje prostorové informace, a jeho vlastnosti jsou:
-
name - název databázové třídy
-
file - částečná cesta k ovladači databázové třídy
Příklad konektoru pro MapServer:
<?
$PROJECT = array(
"dir" => "examples/example1",
"servers" => array(
array(
"type"=>"MapServer",
"server"=>"http://127.0.0.1/cgi-bin/mapserver33_3.3.011",
"project"=>"/opt/mapserv/projects/demo/demo.map"
)
)
);
?>
3. Vytvoření projektu aplikačního serveru
Zkopírováním adresáře tms/examples/prototype do tms/examples/example1 vznikl adresář, který se stal
základem projektu "TMS_DEMO". Tento adresář obsahuje podadresář .admin, v němž se nacházejí konfigurační
soubory projektu, a několik PHP skriptů, které tvoří funkčnost mapového klienta a které si teď představíme:
-
bookmark.php - tento skript vytvoří stránku s odkazy na vyhledávání v mapě nebo na spolupracující databázové agendy
-
db.php - v případě, že databázová část klienta je v samostatném okně, tak tento skript reprezentuje toto okno
-
db_interface.php - slouží pro komunikaci s mapovým klientem
-
panel.php - má na starost okno s ovladacími prvky mapy (tzv. panel)
-
hotlink.php - propojuje mapového klienta s doplňujícími HTML stránkami, databázovými agendami nebo
externími aplikacemi
-
index.php - hlavní skript, který reprezentuje mapového klienta
-
info.php - zobrazuje popisné informace o prvcích v mapě
-
map.php - jeden z nejdůležitějších skriptů, který generuje mapu v různých formátech (HTML, GIF, PNG, JPEG aj.)
-
map_image.php - generuje obrázek mapy pro mapový server MapServer (jde o starší způsob generování mapy, v dalších
verzích bude s největší pravděpodobností zcela nahrazen skriptem map.php)
-
toc.php - tento skript se stará o vytvoření hierarchického seznamu mapových vrstev
-
empty.php - zobrazí prázdnou stránku ve stylu mapového klienta
-
list.php - tento skript slouží pro přehled dostupných mapových klientů (pomocí seznamu odkazů)
-
map_log.php - jedná se o pomocný skript pro logování požadavků na mapu
Vytvořit identifikaci projektu je nutné pouze tehdy, jsou-li vyžadovány vazby na projekt
- např. pro vyhledávání, lokalizace atd. Samotná identifikace probíhá přes jeho název
(v našem případě "TMS_DEMO") v souboru .config\settings\agenda_path.inc. V asociativním
poli SERVER_CONFIG je vlastnost AGENDA_PATH, která obsahuje pole dvojic - název projektu
a cesta k adresáři projektu (viz 3. bod) od kořenového adresáře T-MapServeru.
Příklad identifikace projektu:
<?
$SERVER_CONFIG["AGENDA_PATH"] = array(
"TMS_DEMO"=>"tms/examples/example1",
"DEMO_ULICE_HK"=>"tms/examples/example1/ost/ulice_hk",
"UIRADR_OBJEKT"=>"tms/examples/example1/agendy/uiradr/objekt"
);
?>
Závěr
Po dokončení všech bodů (1 až 4) jsme vytvořili nový mapový projekt, který ještě potřebuje nakonfigurovat
základní funkčnost. Jak se to provede, se dovíte v dalším dokumentu.