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">
<br>
</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!