Hlavní navigace

Mapový server snadno a rychle (7)

Jáchym Čepický 22. 12. 2005

V minulých dílech se nám podařilo vytvořit celkem slušivou mapserveří aplikaci, dnes budeme pokračovat v jejím vylepšování. Nakonec si vypomůžeme Java appletem.

Měřítko

Měřítko mapy je další nepostradatelná věc, která by neměla chybět. V podstatě máme dvě možnosti, jak jej vyjádřit: pomocí číselného údaje (například 1:10 000), nebo pomocí grafického měřítka (jakéhosi pravítka) na mapě (nebo vedle ní).

První (textový) příklad získáme prostě vložením tagu [scale] do šablony stránky, například:

<!-- obrázek s mapou -->
1:[scale]<br>
<input type="image" name="img" src="[img]" width="400" height="300" border="0">
<!-- /obrázek s mapou --> 

Grafické pravítko pak definujeme v mapfilu:

WEB
    [...]
    SCALEBAR
        IMAGECOLOR 255 255 255
        LABEL
          COLOR 0 0 0
          SIZE TINY
        END
        STYLE 1
        SIZE 100 2
        COLOR 0 0 0
        UNITS kilometers
        INTERVALS 2
        TRANSPARENT FALSE
        STATUS EMBED
    END # Scalebar object ends
    [...] 

ObjektSCALEBAR může být definován několika atributy. Zmíním pouze parametr STATUS, který je nastaven na hodnotu EMBED  – což znamená, že pravítko bude integrováno do výsledného obrázku s mapou.

Vylepšení funkcí pomocí Java appletu

Dělám-li nějakou webovou stránku, snažím se, aby byla tato stránka a její funkce přístupná pro co největší počet potencionálních čtenářů – bez ohledu na platformu nebo browser, ve kterém se na stránku dívají. Java applety rozhodně nepatří mezi technologie, které by byly z tohoto pohledu bezproblémové.

Applet jBox ovšem patří mezi programy, které svou přidanou hodnotou bohatě převyšují své případné nedostatky. jBox umožňuje „hezčí” funkci zoom (zvětšování), unzoom a pan (posun), stejně jako některé další funkce, které by pomocí DHTML šly naprogramovat jen těžko.

Instalace jBoxu (na straně serveru) spočívá ve vystavení dvou souborů ( jBox.class a jBox.jar) na web a lehkém překopání naší HTML šablony. Stáhněte si soubor jBox.zip a rozbalte jej někde ve vašem domovském adresáři. Vytvořte adresář /var/www/mapserver/jbox/ a nakopírujte do něj soubory jBox.jar a jBox.class.

Naši šablonu upravíme následujícím způsobem:

<!-- obrázek s mapou -->
1:[scale]<br>
<applet
    codebase="/jBox/"
    archive="jBox.jar"
    code="jBox.class"
    width="400"
    height="300"
    name="jBox"
    MAYSCRIPT>
    <param name="image" value="http://[host][img]">
    <param name="verbose" value="true" id="verbose" >

</applet>
<!-- /obrázek s mapou --> 

Dále musíme do stránky přidat nějaké ty Java Scriptové funkce a další formulářová políčka. Nejdříve ta políčka:

<!-- skryté proměnné -->
[...]
<input type="hidden" name="imgbox" value="-1 -1 -1 -1">
<!-- /skryté proměnné --> 

A nyní již zbývá do hlavičky stránky doplnit první Java Scriptovou funkci. Ta se stará o nastavení patřičných hodnot do formulářových polí a nakonec stránku reloaduje:

[...]
<title>Moje první Mapserveří aplikace</title>
<script language="JavaScript">
        function setbox_handler(name, minx, miny, maxx, maxy) {
          document.mapserv.imgbox.value = minx + " " + miny + " " + maxx + " " + maxy;
          document.mapserv.imgxy.value = minx + " " + miny;
          document.mapserv.submit();
        }

        function seterror_handler(message) {
          window.alert(message);
        }
</script>
[...] 

Ještě je vhodné pomocí Java Scriptu změnit chování appletu po najetí myší, odpovídající funkce doplníme do atributu  onClick:

<input type="radio" name="zoomdir" value="1" onClick="document.jBox.setcursor('crosshair'); document.jBox.boxon();" [zoomdir_1_check]> Zvětšení |
<input type="radio" name="zoomdir" value="0" onClick="document.jBox.setcursor('hand'); document.jBox.dragon();" [zoomdir_0_check]> Posun |
<input type="radio" name="zoomdir" value="-1" onClick="document.jBox.setcursor('crosshair'); document.jBox.boxoff();" [zoomdir_-1_check]> Zmenšení | 

Po kliknutí na patřičnou funkci a najetí myší do oblasti mapy dojde ke změně kurzoru a i k jeho chování.

jBox je ovládán jednak pomocí některých javascriptových funkcí a jednak pomocí tagů <param ...> . Lze měnit vzhled kurzoru myši, barvu a šířku rámečku a další vlastnosti.

jBox je na svém místě, příště si ukážeme, jak s jeho pomocí přidat další funkce.

Našli jste v článku chybu?

7. 3. 2006 21:22

wohnout (neregistrovaný)
SCALEBAR je na stejne urovni jako WEB ne jako jeho podsekce

27. 12. 2005 20:41

bizi (neregistrovaný)
Dobry den,

zajimalo by me jakym zpusobem muzu detekovat jestli klientsky pocitac podporuje Java Aplet , pomoci nehoz jsme vylepsili mapoveho klienta. A jestli by uzivatel mohl byt automaticky presmerovat na jinou verzi mapoveho klienta, pokud ho nepodporuje. Az tak do tehle problematiky nevidim, ale doufam ze jsem se vyjadril spravne.

Dekuji za odpoved



Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Jak koupit Mikuláše a nenaletět

Jak koupit Mikuláše a nenaletět

Lupa.cz: E-shopy: jen sleva už nestačí

E-shopy: jen sleva už nestačí

Vitalia.cz: Žloutenka v Brně: Nakaženo bylo 400 lidí

Žloutenka v Brně: Nakaženo bylo 400 lidí

Vitalia.cz: Vláknina: Rozpustná, nebo nerozpustná?

Vláknina: Rozpustná, nebo nerozpustná?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Dárky v podnikání. Jak je uplatnit v daních?

Dárky v podnikání. Jak je uplatnit v daních?