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.