From b7537b83db84d03b76f6662ba4712b89e04c0218 Mon Sep 17 00:00:00 2001 From: jshjelse <jshjelse@stud.ntnu.no> Date: Mon, 23 Oct 2023 16:07:25 +0200 Subject: [PATCH] =?UTF-8?q?Begynne=20=C3=A5=20n=C3=B8ste=20opp=20i=20probl?= =?UTF-8?q?emet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- javascript/buffer.js | 8 ++------ javascript/turfFormatConverter.js | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/javascript/buffer.js b/javascript/buffer.js index 8c75709..d6a7c7e 100644 --- a/javascript/buffer.js +++ b/javascript/buffer.js @@ -32,19 +32,16 @@ function makeBuffer() { var name = document.getElementById("bufferName").value; // Prøver å kjøre buffer-funksjonen: - var buffer = turf.buffer(layer, distance, {units: "meters"}); // Lager buffer - console.log(JSON.stringify(buffer)); - /* try { 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 // Dette er nytt console.log(JSON.stringify(buffer)); - /*if (isMultiPolygon(buffer)) { // Kan ikke sende MultiPolygon inn i dissolved + 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 @@ -61,5 +58,4 @@ function makeBuffer() { } catch(failure) { // Hvis det ikke går å lage buffer, sendes det en feilmelding alert(failure); } - */ } diff --git a/javascript/turfFormatConverter.js b/javascript/turfFormatConverter.js index 6e562a9..b6e3945 100644 --- a/javascript/turfFormatConverter.js +++ b/javascript/turfFormatConverter.js @@ -17,8 +17,24 @@ function featureCollectionToMultiPolygon(layer) { // Funksjon som gjør om featu } function isMultiPolygon(layer) { // Inneholder 'layer' features som er MultiPolygon? - if (layer["geometry"]["type"] == "MultiPolygon") { - return true; + more = false; + + try { + if (layer["features"]) { + more = true; + } + } catch {} + + if (more) { + for (var i = 0; i < layer["features"].length; i++) { + if (layer["features"][i]["geometry"]["type"] == "MultiPolygon") { + return true; + } + } + } else { + if (layer["geometry"]["type"] == "MultiPolygon") { + return true; + } } return false; } -- GitLab