Komunikační rozhraní k mapě
Obsah
Úvod
Konfigurační soubor interface_schema.inc obsahuje nastavení pro komunikaci s
mapou. Tato nastavení se nachází v asociativním poli MAP_INTERFACE, kde se definují
vrstvy, s kterými lze komunikovat pomocí komunikačního rozhraní. V komunikačním
rozhraní je parametr Theme, který identifikátorem pro nastavení pole MAP_INTERFACE
a umožňuje tak správné přiřazení dotazu k mapové vrstvě klienta.
Popis konfiguračního souboru
Asociativní pole MAP_INTERFACE
Pole MAP_INTERFACE obsahuje seznam vrstev a jejich vlastnosti, v kterých lze provádět
vyhledávání. Každá vlastnost pole MAP_INTERFACE je pojmenována
podle názvu vrstvy a tvoří asociativní pole vlastností potřebných pro
komunikaci s okolím.
Vlastnosti komunikující vrstvy:
-
type - typ serveru, kde se provádí vyhledávání mapového prvku, který nás
zajímá
Vlastnost type může nabývat hodnot:
-
Postgres - databázový server PostgreSQL
-
Table - databázový server podporovaný v PHP
-
MapServer - mapový server MapServer
-
ArcIMS - mapový server ArcIMS
-
connection - název konektoru na databázi nebo projekt mapového serveru
-
field_type - datový typ atributu pro parametr Field komunikačního rozhraní
-
map_layer - identifikátor vrstvy v mapovém klientu, které se má přiřadit výběr
nalezených prvků. Pozor u zanořených vrstev se musí použít seznam vrtev oddělených
tečkami (např. když vrstva layer1 je potomkem vrstvy parent1, tak identifikátor
vrstvy layer1 je "parent1.layer1")
-
table_extent - nastavení pro typ serveru Table, jestli se má získávat výřez (extent)
prvků z tabulky (hodnoty: true/false)
-
tmv_interface - seznam přednastavených parametrů komunikačního rozhraní T-MapServeru
Příklad:
tmv_interface = array(
"Zoom"=>"ToScale",
"MinScale"=>2000,
"AddToSel"=>0,
"DrawPin"=>1,
"DoSel"=>1
);
Popis komunikačního rozhraní
Parametry v hranatých závorkách [parametr=hodnota] jsou nepovinné a
odrážkové seznamy hodnot s dalšími parametry znamenají nabídku dalších parametrů
na základě zvolené hodnoty.
Command= - název příkazu
-
SelByFld - výběr přes atribut
Field=/Název Pole/
Values=/Hodnoty s oddělovačem/
[ValuesSeparator=/Oddělovač/
(default: ",")]
-
SelBySQL - výběr přes SQL dotaz
SQL=/Where část příkazu SQL/
-
SelByJoinedSQL - výběr přes připojenou tabulku
[SQLType=/ID|SELECT/
(default: ID)]
[SQL=/SQL_Id v tabulce databázových
dotazů|SELECT příkaz/
(default: SQL_Id)]
[ThemeField=/Název pole v atributové
tabulce tématu/
(default: převezme se ze stylu TM_STYLE_ID)]
[TableField=/Název pole v připojované
tabulce/
(default: převezme se ze stylu TM_STYLE_ID)]
-
ShowCoord - zobrazení souřadníce nebo výřezu v mapě
Coord=/X1:Y1,X2:Y2 - seznam dvojic
souřadnic/
-
Activate - zobrazení mapy
Následující parametry platí pro všechny výběry:
Theme=/Identifikátor tématu/
AddToSel=/0|1/ (default: 0)
DoSel=/0|1/ (default: 1)
ChangeSel=/0|1/ (default: 1)
DrawPin=/0|1/ (default: 0)
PinColor=/Kód barvy/ (default: $FF - červená)
Zoom= - způsob volby měřítka mapy
-
ToExtent - podle výřezu mapy
Percent=/Procenta
výřezu/ (default: 120)
[MinScale=/Minimální faktor měřítka/]
[MaxScale=/Maximální faktor měřítka/]]
-
ToScale - podle faktoru měřítka
Scale=/Faktor
měřítka/ (default: 0 - Pan)
-
ToFullExtent - podle výřezu celé mapy
-
None
Group=/Skupina vrstev, která se má
při natažení mapy zapnout a ostatní vrstvy se vypnou/
Project=/Identifikátor projektu/
TM_SQLType=/ID|SELECT/ (default:
ID)
TM_SQL=/SQL_Id v tabulce databázových
dotazů pro tematické mapování nebo SELECT/
TM_StyleType=/ID/ (default:
ID)
TM_Style=/Id v tabulce stylů tematického
mapování/
TM_Reset=/0|1/ (default: 1)
Příklady nastavení
<?
$MAP_INTERFACE["budovy"] = array(
"type"=>"MapServer",
"connection"=>"demo",
"layer"=>"budovy",
"field_type" => "number",
"map_layer"=>"demo",
"tmv_interface"=>array(
"Zoom"=>"ToScale",
"MinScale"=>4000,
"Scale"=>4000,
"AddToSel"=>0,
"DrawPin"=>1,
"DoSel"=>1
)
);
$MAP_INTERFACE["ulice_anno"] = array(
"type"=>"MapServer",
"connection"=>"demo",
"layer"=>"ulice_anno",
"field_type" => "text",
"map_layer"=>"demo",
"tmv_interface"=>array(
"MinScale"=>5000,
"Zoom"=>"ToExtent",
"Percent"=>110,
"AddToSel"=>0,
"DrawPin"=>1,
"DoSel"=>1
)
);
$MAP_INTERFACE["XY"] = array(
"type"=>"MapServer",
"map_layer"=>"demo",
"tmv_interface"=>array(
"MinScale"=>6000,
"Zoom"=>"ToExtent",
"Percent"=>110,
"AddToSel"=>0,
"DrawPin"=>1,
"DoSel"=>0
)
);
?>