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?

6. 10. 2009 19:10

Anonym (neregistrovaný)

ono fajn clanocek, na localhoste mi to slape pekne, ale autor sa nikde nezmienil o tom, ako toto vsetko dostat na server, alebo publikovat aj inde ako pod adresou 127.0.0.1

7. 3. 2006 23:09

wohnout (neregistrovaný)
He no ono co byste v CR chteli krome S-JTSK (Krovakovo zobrazeni) pouzit?
Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Vychytané vály a válečky na vánoční cukroví

Vychytané vály a válečky na vánoční cukroví

Měšec.cz: Komu musí od ledna zvýšit mzdu?

Komu musí od ledna zvýšit mzdu?

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Měšec.cz: Stavební spoření: alternativa i pro seniory

Stavební spoření: alternativa i pro seniory

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

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č?

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu