From d4226f3c0ef70fe87775b74fbe9ab09577a992f1 Mon Sep 17 00:00:00 2001 From: jshjelse <jshjelse@stud.ntnu.no> Date: Sun, 1 Oct 2023 18:36:10 +0200 Subject: [PATCH] =?UTF-8?q?Ferdigstille=20+=20sm=C3=A5fikse=20en=20del=20a?= =?UTF-8?q?nnet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 13 ++++++++++++- javascript/buffer.js | 9 +++++++-- javascript/dissolve.js | 19 +++++++++++++++++++ javascript/sidebar&boxes.js | 3 ++- 4 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 javascript/dissolve.js diff --git a/index.html b/index.html index a3b6cf5..dd5bf95 100644 --- a/index.html +++ b/index.html @@ -84,7 +84,7 @@ </div> <p>Choose a layer to create a buffer around:</p> - <select id="bufferSelect">Layer:</select> + <select id="bufferSelect"></select> <p>Write the distance you want for the buffer (in meter):</p> <input id="bufferDistance"> @@ -92,6 +92,8 @@ <p>Choose a name for the new buffer:</p> <input id="bufferName"><br> + <p>Do you want to dissolve the layers? <input type="checkbox" id="bufferCheck"></p> + <button class="button" style="font-size: 25px;" onclick="makeBuffer()">Make buffer</button> </div> @@ -115,6 +117,14 @@ <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z"/> </svg> </div> + + <p>Choose a layer to dissolve:</p> + <select id="dissolveSelect"></select> + + <p>Choose a name for the new dissolved layer:</p> + <input id="dissolveName"><br> + + <button class="button" style="font-size: 25px;" onclick="dissolve()">Dissolve</button> </div> <div id="extractBox" class="box"> @@ -198,6 +208,7 @@ <script src="javascript/geoJSON.js"></script> <script src="javascript/leafletLayerControl.js"></script> <script src="javascript/buffer.js"></script> + <script src="javascript/dissolve.js"></script> <!-- Imported js --> <!-- <script src="https://unpkg.com/shpjs@latest/dist/shp.js"></script> --> diff --git a/javascript/buffer.js b/javascript/buffer.js index 230703a..54b2d78 100644 --- a/javascript/buffer.js +++ b/javascript/buffer.js @@ -10,8 +10,13 @@ function makeBuffer() { var name = document.getElementById("bufferName").value; try { - var buffer = turf.buffer(layer.toGeoJSON(), distance, {units: "meters"}); // Denne må ryddes opp i! - var newLayer = L.geoJSON(turf.dissolve(buffer)); + var buffer = turf.buffer(layer.toGeoJSON(), distance, {units: "meters"}); + + if (document.getElementById("bufferCheck").checked) { + var newLayer = L.geoJSON(turf.dissolve(buffer)); + } else { + var newLayer = L.geoJSON(buffer); + } overlayMaps[name] = newLayer; diff --git a/javascript/dissolve.js b/javascript/dissolve.js new file mode 100644 index 0000000..3aecc35 --- /dev/null +++ b/javascript/dissolve.js @@ -0,0 +1,19 @@ +function dissolve() { + var input = document.getElementById("dissolveSelect").value; + var layer = overlayMaps[input]; + var name = document.getElementById("dissolveName").value; + + try { + var dissolved = turf.dissolve(layer.toGeoJSON()); + var newLayer = L.geoJSON(dissolved); + + overlayMaps[name] = newLayer; + + updateSidebar(); + handleLayer(name); + document.getElementById("dissolveSelect").value = ""; + document.getElementById("dissolveName").value = ""; + } catch(failure) { + alert(failure); + } +} \ No newline at end of file diff --git a/javascript/sidebar&boxes.js b/javascript/sidebar&boxes.js index f08ff14..5893afe 100644 --- a/javascript/sidebar&boxes.js +++ b/javascript/sidebar&boxes.js @@ -28,6 +28,8 @@ function openBox(id) { // Fyller aktuell select med alternativ avhengig av hvilken boks en åpner: if (id == "bufferBox") { fillSelect("bufferSelect"); + } else if (id == "dissolveBox") { + fillSelect("dissolveSelect"); } document.getElementById(String(id)).style.width = "40vw"; @@ -54,7 +56,6 @@ function fillSelect(id) { select.innerHTML = ""; - //select.options.lenght = 0; for (key in overlayMaps) { select.add(new Option(text = key, value = key)); } -- GitLab