## On programming
A program is a building of thought. It is costless to build, it is weightless, and it grows easily under our typing hands.
But without care, a program’s size and complexity will grow out of control, confusing even the person who created it.
Keeping programs under control is the main problem of programming. When a program works, it is beautiful.
The art of programming is the skill of controlling complexity.
Marijn Haverbeke, in Eloquent JavaScript
const compose_wms = function () {
...
}
<button id="btn" onclick=
"document.getElementById('wms_kall').innerHTML =
compose_wms()">
Lag komplett WMS-kall
</button>
let x = Number(document.getElementById("x").value);
let y = Number(document.getElementById("y").value);
let x_size = Number(document.getElementById("x_terreng").value);
let y_size = Number(document.getElementById("y_terreng").value);
console.log("x-verdi: " + x);
console.log("x-verdi: " + y);
console.log("x_size-verdi: " + x_size);
console.log("y_size-verdi: " + y_size);
/*
* Her må du legge til kode som beregner de fire koordinatverdiene
* som inngår i BBOX-parameteren. For å beregne dette trenger du
* x, y, x_size og y_size.
*/
let x1 = x - x_size / 2;
let y1 = y - y_size / 2;
let x2 = x + x_size / 2;
let y2 = y + y_size / 2;
/*
* Linjen nedenfor må forandres slik at du får lagt til de fire
* parametrene som du skal beregne ovenfor.
*/
let bbox = "&BBOX="
let bbox = `&BBOX=${x1},${y1},${x2},${y2}`;
Legg merke til 'back-tics' tegnene ved start og slutt av teksten' samt ${ .. } - konstruksjonen. Verdien av variabelen inne i klammeparantesen skrives ut.
Til slutt: innholdet i to tekst-bokser samt bbox-verdien slåes sammen og returneres fra funksjonen:
return document.getElementById("url").value.trim() +
"\n" +
document.getElementById("wms_parameters").value.trim() +
"\n" +
bbox
value.trim() fjerner blanke tegn (mellomrom eller tab) foran og bak teksten
Funksjon som åpner et nytt nettleservindu med det komplette WMS-kallet:
const get_wms_img = function () {
window.open(document.getElementById("wms_kall").value);
}
<button id="btn" onclick=
"document.getElementById('wms_img').innerHTML =
get_wms_img()">Vis WMS-bilde
</button>
HTML-kode for knapp og funksjonskall:
Ferdig løsning:
https://folk.ntnu.no/sverrsti/GEO2311-H2019/docs/wms-kall.html
Bruk Ctrl + U i nettleseren for å se hele løsningen samlet.