Newer
Older
/*
Link til nettside med turfjs-funksjoner:
https://turfjs.org/docs/
*/
function makeBuffer() {
// Sjekk av faktisk og gyldig input:
var regex_1 = /^[0-9]+$/;
var regex_2 = /^[a-zA-Z_0-9]+$/;
if (document.getElementById("bufferSelect").value == "- - -") { // Brukeren får tilbakemelding på hva som ikke fungerer / er feil
return alert("You need to choose a layer!");
} else if (!document.getElementById("bufferDistance").value) {
return alert("You need to set a distance as an integer!");
} else if (!document.getElementById("bufferDistance").value.match(regex_1)) {
return alert("You need to set a distance as an integer!");
} else if (!document.getElementById("bufferName").value) {
return alert("You need to choose a name for the new layer!");
} else if (!document.getElementById("bufferName").value.match(regex_2)) {
return alert("The new name must consist of normal letters!");
} else if (doLayerExist(document.getElementById("bufferName").value)) {
return alert("Choose another name! There exists already a layer with that name.")
var input = document.getElementById("bufferSelect").value;
var layer = overlayMaps[input].toGeoJSON();
var distance = parseFloat(document.getElementById("bufferDistance").value);
var name = document.getElementById("bufferName").value;
var buffer = turf.buffer(layer, distance, {units: "meters"}); // Lager buffer
if (document.getElementById("bufferCheck").checked) { // Om en har huket av for at en skal 'dissolve' gjøres det
if (isMultiPolygon(buffer)) { // Kan ikke sende MultiPolygon inn i dissolved
buffer = multiPolygonToFeatureCollection(buffer);
var dissolved = turf.dissolve(buffer);
var newLayer = L.geoJSON(dissolved, {style: getStyle()});
} else { // Ellers lager den bare mange ulike buffer-soner
var newLayer = L.geoJSON(buffer, {style: getStyle()});
overlayMaps[name] = newLayer; // Det nye laget legges til i dictionarien med alle kartlagene
updateSidebar(); // Oppdaterer sidebaren
handleLayer(name); // Viser laget i kartet
document.getElementById("bufferDistance").value = ""; // Tilbakestiller input-feltene fra brukeren
document.getElementById("bufferName").value = "";
} catch(failure) { // Hvis det ikke går å lage buffer, sendes det en feilmelding