Hlavní navigace

Mapový server snadno a rychle (8)

Jáchym Čepický

Dnešní díl je poslední. K jBoxu si přidáme funkce na měření vzdáleností a ploch a nakonec si ukážeme, jak pomocí Java Scriptu zaokrouhlit některé hodnoty.

Měření vzdáleností a ploch

Díky appletu můžeme i měřit plochy a vzdálenosti pomocí myši. Opět musíme doplnit některé javascriptové funkce a jednu proměnnou. Aby byl výsledek hezčí, zavedeme nový div, do kterého budeme výsledky zobrazovat on-line. Nejdříve ten Java Script:

function measure_handler(name, s, t, n, a) {
                var c= 1/72/39.3700787/1000;         // 1/teček na palec/palců na metr / metrů na kilometr
                var f = [scale] * c;        // měřítkový faktor
                var plocha=a*f*f;
                var text;
        if ((s>0) || (t>0)) {
                        text = "Poslední úsek = " + s*f + "km, Celková délka = " + t*f + "km,<br> Počet uzlů= " + n + ", Celková plocha=" +plocha+"km^2" ;
                    document.getElementById('divConsole').innerHTML=text;
        }
} 

Funkce vytvoří proměnnou defaultStatus, do které uloží textový řetězec a nakonec nastaví hodnotu div u divConsole  na tento textový řetězec. Tento div musíme ještě vytvořit:

<!-- /obrázek s mapou -->
<div name="divConsole">
&nbsp;
<br>
&nbsp;
</div> 

A nakonec musíme přidat ještě nové tlačítko do panelu nástrojů:

<input type="radio" name="measure" onClick="document.jBox.setcursor('crosshair'); document.jBox.lineon();"> Měření | 

Po vytvoření lomené linie o 3 bodech a více se nám začne počítat i plocha. K ověření přesnosti můžete přeměřit měřítko mapy.

„Učesání” některých číselných hodnot pomocí Java Scriptu

Některé hodnoty (měřítko, celková plocha) jsou zobrazovány s nesmyslnou přesností, což nepůsobí moc „pěkně”. Tyto hodnoty můžeme zaokrouhlit opět pomocí Java Scriptu tak, že využijeme funkci  Math.round(x):

text = "Poslední úsek = " + Math.round(s*f) + "km, Celková délka = " + Math.round(t*f) + "km,<br> Počet uzlů= " + n + ", Celková plocha=" +Math.round(plocha)+"km^2" ; 

Stejným způsobem můžeme upravit i textové měřítko mapy, které jsme zatím řešili pouze tagem 1:[scale]. Výsledné měřítko se sice nebude zobrazovat úplně přesně, ale bude rozhodně přehlednější:

[...]
<!-- obrázek s mapou -->
1:<script language="JavaScript">document.write(Math.round([scale]/100)*100);</script><br>
[...] 

Závěr

A to je vše, přátelé. Nyní byste měli být schopni vystavět si vlastní aplikaci s použitím programu UMN MapServer. Neprobrali jsme sice možnosti dotazování do databáze, ale za pomoci dokumentace by toto neměl být již žádný problém.

Snažil jsem se vám ukázat, o čem to může být, napsat takovou jednoduchou aplikaci na zobrazování map a snažil jsem se upozornit na zajímavé funkce a pomocné programy, jejichž implementací se funkcionalita aplikace zvýší. Vynechal jsem kromě již zmíněných vyhledávání v mapě a databázi také možnosti spojení s programovacími jazyky jako je Perl nebo Python. Tato spojení jsou dobře popsána v dokumentaci a pro bystrého čtenáře určitě nebude problém si takovou aplikaci napsat. Já patřím mezi ty, kteří zakrněli u Perlu, a proto bych asi očekávání většiny nenaplnil.

Doufám, že vám tento krátký seriál bude sloužit jako nástupní text pro vytváření vlastní aplikace a že zjistíte, že publikování vlastních map na internetu není takový problém.

Happy GISing!

Našli jste v článku chybu?