From 2e6169cc95e7ecd67671995f38112fb5e4ed9b4a Mon Sep 17 00:00:00 2001
From: jshjelse <jshjelse@stud.ntnu.no>
Date: Mon, 2 Oct 2023 09:33:53 +0200
Subject: [PATCH] Ferdigstille

---
 index.html                        |  1 +
 javascript/difference.js          | 13 ++++++++++---
 javascript/turfFormatConverter.js | 16 ++++++++++++++++
 3 files changed, 27 insertions(+), 3 deletions(-)
 create mode 100644 javascript/turfFormatConverter.js

diff --git a/index.html b/index.html
index 64434a4..61dc050 100644
--- a/index.html
+++ b/index.html
@@ -221,6 +221,7 @@
         <script src="javascript/buffer.js"></script>
         <script src="javascript/dissolve.js"></script>
         <script src="javascript/difference.js"></script>
+        <script src="javascript/turfFormatConverter.js"></script>
 
         <!-- Imported js -->
         <!-- <script src="https://unpkg.com/shpjs@latest/dist/shp.js"></script> -->
diff --git a/javascript/difference.js b/javascript/difference.js
index 48c5f83..694f997 100644
--- a/javascript/difference.js
+++ b/javascript/difference.js
@@ -1,12 +1,19 @@
 function difference() {
     var input1 = document.getElementById("differenceSelect_1").value;
-    var layer1 = overlayMaps[input1];
+    var layer1 = overlayMaps[input1].toGeoJSON();
     var input2 = document.getElementById("differenceSelect_2").value;
-    var layer2 = overlayMaps[input2];
+    var layer2 = overlayMaps[input2].toGeoJSON();
     var name = document.getElementById("differenceName").value;
 
+    // MÃ¥ konverteres fra feature collection til multipolygon:
+    var coords1 = featureCollectionToMultiPolygon(layer1);
+    var coords2 = featureCollectionToMultiPolygon(layer2);
+    
+    var multiPolygon1 = turf.multiPolygon(coords1);
+    var multiPolygon2 = turf.multiPolygon(coords2);
+
     try {
-        var difference = turf.difference(layer1.toGeoJSON(), layer2.toGeoJSON());
+        var difference = turf.difference(multiPolygon1, multiPolygon2);
         var newLayer = L.geoJSON(difference);
         
         overlayMaps[name] = newLayer;
diff --git a/javascript/turfFormatConverter.js b/javascript/turfFormatConverter.js
new file mode 100644
index 0000000..c3c5095
--- /dev/null
+++ b/javascript/turfFormatConverter.js
@@ -0,0 +1,16 @@
+/*
+Henter ut koordinatene fra GeoJSON-lag slik at en kan
+konvertere mellom feature collections og format godtatt av turf
+*/
+
+function featureCollectionToMultiPolygon(layer) { // layer er her et GeoJSON-lag
+    if (layer["type"] == "FeatureCollection") {
+        var liste = [];
+        var features = layer["features"]
+
+        for (var i = 0; i < features.length; i++) {
+            liste.push(features[i]["geometry"]["coordinates"]);
+        }
+        return liste;
+    }
+}
\ No newline at end of file
-- 
GitLab