Marushka Bloguje

Stránky jsou určeny článkům a vašim reakcím. Pokud chcete psát komentáře k článkům, prosím zaregistrujte se.

Volaní HTML klienta metodou POST/GET

Mapového klienta můžeme volat z externí webové stránky, popřípadě z externí aplikace přes HTTP rozhraní metodou POST/GET. Tedy například pomocí HTML formuláře v HTML stránce nebo v příkazové řádce prohlížeče (respektive pomocí TAGU <A href=““>). Pokud použijeme metodu GET, tak musíme pamatovat na to, že maximální délka řetězce je omezena na cca 2000 znaků.
 

Layout a Definice rozložení klienta.

Parametry ve volání můžeme potlačit použití komponent, které jsou povoleny v konfiguraci klienta. Tj. v definici téma sekce LayOut (Definice rozložení HTML klienta), pokud je např. parametr LayOutVicinity (Zobrazit přehledovou mapu) nastaven na false, není možné přehledovou mapu zapnout zvenčí, ale pokud je povolen, můžeme jej hodnotou false zakázat.


 
Editor témat, sekce LayOut nastavení HTML klienta.

Jména parametrů použitelných pro volaní jsou většinou shodná se jmény proměnných v nastavení LayOut, pouze obsahují místo předpony LayOut předponu Mar. Například parametr pro zakázání přehledové mapy je MarVicinity, v editoru témat se jmenuje LayOutVicinity.


Parametr volání

Proměnná tématu

Popis

Hodnoty

MarApplication

LayOutApplication


 

Zobrazit tlačítko Aplikace.

true/false

MarGeometryQuery


 

LayOutGeometryQuery


 

Zobrazit tlačítko geomterické dotazy.

true/false

MarGPS


 

LayOutGPS


 

Zobrazit tlačítko GPS.

true/false

MarHTMLFoot


 

LayOutHTMLFoot


 

Jméno souboru HTML patky.


 

Soubory umístěné v adresáři HTML, Např.
patka.dat, pro nezobrazení prázdný řetězec.

MarHTMLHead


 

LayOutHTMLHead


 

Jméno souboru HTML hlavičky.

Soubory umístěné v adresáři HTML, Např.
hlaviccka.dat, pro nezobrazení prázdný řetězec.

MarMeasurement


 

LayOutMeasurement


 

Zobrazit tlačítko Měření.

true/false

MarMenu


 

LayOutMenu


 

Zobrazit menu.

true/false

MarPanelExpand


 

LayOutPanelExpand


 

Maximalizovat panel záložek.

true/false

MarPanelFind


 

LayOutPanelFind


 

Zobrazit záloku hledat.


 

true/false

MarPanelIndex


 

LayOutPanelIndex


 

Index aktuální záložky.

[0,1,2,3,4]

MarPanelInfo


 

LayOutPanelInfo


 

Zobrazit záložku informace.

true/false

MarPanelLayers


 

LayOutPanelLayers


 

Zobrazit záložku vrstvy.

true/false

MarPanelLegend


 

LayOutPanelLegend


 

Zobrazit záložku legenda.

true/false

MarPanelPrint


 

LayOutPanelPrint


 

Zobrazit záložku tisk.

true/false

MarPolygon


 

LayOutPolygon


 

Zobrazit tlačítko výber polygonem.

true/false

MarPreselect


 

LayOutPreselect


 

Zobrazit Info nastroj (funkce klikni do mapy -> vyber ze seznamu prvek-> zobraz informace)

true/false

MarScalebar

LayOutScalebar

Zobrazit posuvník měřítka.

true/false

MarTheme


 

LayOutTheme


 

Zobrazit nabídku témat.

true/false

MarTools


 

LayOutTools


 

Zobrazit nabídku nástrojů.

true/false

MarVicinity


 

LayOutVicinity


 

Zobrazit přehledovou mapu.

true/false

MarWheel


 

LayOutWheel


 

Zoom pomocí kolečka myši.

true/false

MarKN

LayOutKN

Zobraz tlačítko nahlížení do KN

true/false

 
 

Parametry, které nejsou definovány v tématu. 

Následující parametry nejsou definovány v tématu, nicméně ovlivňují rozložení klienta.

 

Parametr volání

Popis

Hodnoty

MarHideVIPQuery

Vypne zobrazení populárního dotazu.

true/false

 


Vrstvy, info vrstvy a extent, téma.

Parametry, pro zapnutí/vypnutí vrstev a info vrstev a posun klienta na jiné území.

 

Parametr volání

Popis

Hodnoty

ThemeID

ID tématu.

[0 .. n]

MarExtent

Parametr definuje startovací omezující obdélník HTML klienta. Hodnoty jsou odděleny mezerami (respektive %20 protože by mely být URLEncoded).

Aktuálně hodnoty jsou v souřadnicovém systému S-JTSK a mm.

[xmin ymin xmax ymax]

MarUid

Seznam vrstev, které mají být po zavolání zapnuté. Vrstvy se identifikují globálním ID publikační vrstvy. Jednotlivé hodnoty jsou odděleny mezerami.

[GID1 GID2 GID3 …]

MarUidi

Seznam info vrstev, které mají být po zavolání zapnuté. Vrstvy se identifikují globálním ID publikační vrstvy. Jednotlivé hodnoty jsou odděleny mezerami.

[GID1 GID2 GID3 …]

 


Globální ID Publikační v vrstvy v editoru Publikačních vrstev.


 

Autorizace

HTML klient lze volat, pokud je i zapnutá autorizace, tento postup je potřeba opravdu zvážit protože jméno a heslo je součásti dotazu nekryptované.

 

Parametr volání

Popis

Hodnoty

UserName

Uživatelské jméno uživatele

string

Password

heslo

string


 

Dotazy, lokalizace. 

HTML klienta lze volat i tak, že při prvním vykreslení mapy vyhodnotí lokalizační dotaz a posune startovací omezující obdélník do výsledku lokalizace. Pokud výsledek obsahuje prvky pro zvýraznění, tak je zvýrazní.
 

Parametr volání

Popis

Hodnoty

MarQueryID

Unikátní ID dotazu položka GId ve vlastnostech dotazu.

GID

MarQParamCount

Počet parametrů lokalizačního dotazu.

[0 .. n]

MarQParamX

Hodnota parametru dotazu s indexem X. Indexuje se od 0. Hodnotu zapisujeme URLEncoded

string


 

Příklad volání klienta s lokalizací

V tématu s id=1 máme nadefinovaný lokalizační dotaz „Lokalizace č.p./č.e. podle ulice“. Tento dotaz obsahuje tri parametry (hodnota vlastnosti QueryParams= Obec;Ulice;č.p./č.e.). Tento dotaz má vlastnost GId= 296B89E1. Klienta následně voláme s následujícími parametry:

ThemeID=1
MarQueryID = 296B89E1
MarQParamCount =3
MarQParam0= Zlín
MarQParam1= A. Randýskové
MarQParam2= 1679 P Zlín

Parametry obsahuji české znaky, proto je zakódujeme pomocí kódování URLEncoded UTF-8.

ThemeID=1
MarQueryID=296B89E1
MarQParamCount=3
MarQParam0=Zl%C3%ADn
MarQParam1=A.%20Rand%C3%BDskov%C3%A9
MarQParam2=1679%20P%20Zl%C3%ADn

Výsledný dotaz na server metodou GET vypadá následovně:

http://adresaserveru/Marushka/default.aspx?ThemeID=1&MarQueryID=296B89E1&MarQParamCount=3&MarQParam0=Zl%C3%ADn&MarQParam1=A.%20Rand%C3%BDskov%C3%A9&MarQParam2=1679%20P%20Zl%C3%ADn

Pokud budeme používat HTML formulář a volání metodou POST kódování se provede automaticky.

 

.Net aplikace

Pokud voláme klienta z .Net aplikace můžeme klientovi poslat kompletní Formální vrstvu (objekt FormLayer z namespace GeSto.Engine) a to serializovanou do XML a šifrovanou 32bit klíčem.

Pro vytvoření řetězce budeme potřebovat v projektu referenci na GSFrameWork.dll a ExternalServerFunction.dll, dále vygenerovaný klíč „ContextKey“, který je shodný s klíčem definovaným v nastavení Marushka serveru a to konkrétně v souboru „web.config“.

<!--
Context key-->

<add key ="ContextKey" value="HewSErTSHsXs="/>

Z instance objektu FormLayer dostaneme požadovaný řetězec pomocí následující metody:

public static string CreateFormLayerString(FormLayer fLayer,string contextKey)
{
string result = string.Empty;
try
{
result = NameConvertor.Encrypt(contextKey, FormLayer.XMLStringFromFormLayer(fLayer));
}
catch
{

}
return result;
}


 

Výsledný řetězec pak posíláme v parametru LocalizeName, dále pak musíme poslat korespondující globální id datového skladu tedy parametr LocalizeId.

Nový ContextKey vygenerujeme pomoci aplikace MarushkaKeyGenerator.

 

Parametr volání

Popis

Hodnoty

MarLocalizeName

Šifrovaná a serializovaná instance objektu FormLayer

string

MarLocalizeDsid

Globalní ID Datového skladu. (Vlastnost GId)

string

 

Speciální módy klienta.

GetFence mode
Klienta můžeme zavolat ve speciálním modu GetFence, který slouží k zadání polygonu (ohrady). Po zavolání se klient přepne do módu „zadávaní ohrady“ a pokud uživatel úspěšně dokončí (zadá) ohradu/polygon, tak klient vrátí souřadnice na specifikovanou URL. Vracené souřadnice ohrady/polygonu jsou souřadnicovém systému S-JTSK a v milimetrech. 
 

Parametr volání

Popis

Hodnoty

action

Typ akce

getfence

returnFenceURL

URL stránky pro zpracování

string



Request:
http://localhost:4361/WebServer/default.aspx?action=getfence&returnFenceURL=zpracuj.aspx

Response:
http://localhost:4361/WebServer/zpracuj.aspx?fenceX=-523487871 -519173780 -519576966 -522469826&fenceY=-1165647451 -1164125423 -1166605018 -522469826




Zpět na seznam článků