From 1de75a2aa53c1db1d4e4148b9141e2bb88750e8c Mon Sep 17 00:00:00 2001
From: jshjelse <jshjelse@stud.ntnu.no>
Date: Thu, 5 Oct 2023 14:10:30 +0200
Subject: [PATCH] Fiksa!

---
 index.html              | 16 ++++++-
 javascript/mapChange.js | 98 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 112 insertions(+), 2 deletions(-)
 create mode 100644 javascript/mapChange.js

diff --git a/index.html b/index.html
index fcff435..65f8529 100644
--- a/index.html
+++ b/index.html
@@ -27,7 +27,7 @@
 
             <div style="display: flex; flex-grow: 2; flex-direction: column;">
                 <h1 style="margin: 0; padding: 0; text-align: center; font-size: 12vh;">ProgGIS</h1>
-                <div class="box1">
+                <div id="buttons1" class="box1">
                     <p style="width: 7vw;"></p>
                     <button class="button" onclick="openBox('bufferBox')">Buffer</button>
                     <button class="button" onclick="openBox('differenceBox')">Difference</button>
@@ -36,6 +36,11 @@
                     <button class="button" onclick="openBox('intersectionBox')">Intersection</button>
                     <button class="button" onclick="openBox('unionBox')">Union</button>
                 </div>
+                <div id="buttons2" class="box2" style="display: none;">
+                    <p style="width: 32vw;"></p>
+                    <button class="button">TIN</button>
+                    <button class="button">Voronoi</button>
+                </div>
             </div>
             
             <svg style="padding-right: 2vh; padding-top: 2vh;"
@@ -229,10 +234,16 @@
 
                 <div class="box2">
                     <div style="padding-left: 2vw;">
-                        <svg style="cursor: pointer; border: none; position: absolute; color: orangered; z-index: 999;" onclick="openNav()"
+                        <svg id="sidebarOpener" style="cursor: pointer; border: none; position: absolute; color: orangered; z-index: 999;" onclick="openNav()"
                         xmlns="http://www.w3.org/2000/svg" width="6vh" height="6vh" fill="currentColor" class="bi bi-plus-circle-fill" viewBox="0 0 16 16">
                             <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v3h-3a.5.5 0 0 0 0 1h3v3a.5.5 0 0 0 1 0v-3h3a.5.5 0 0 0 0-1h-3v-3z"/>
                         </svg>
+
+                        <svg id="mapChanger" style="margin-left: 8vh; cursor: pointer; border: none; position: absolute; color: orangered; z-index: 999;" onclick="changeMap()"
+                        xmlns="http://www.w3.org/2000/svg" width="6vh" height="6vh" fill="currentColor" class="bi bi-pin-map-fill" viewBox="0 0 16 16">
+                            <path fill-rule="evenodd" d="M3.1 11.2a.5.5 0 0 1 .4-.2H6a.5.5 0 0 1 0 1H3.75L1.5 15h13l-2.25-3H10a.5.5 0 0 1 0-1h2.5a.5.5 0 0 1 .4.2l3 4a.5.5 0 0 1-.4.8H.5a.5.5 0 0 1-.4-.8l3-4z"/>
+                            <path fill-rule="evenodd" d="M4 4a4 4 0 1 1 4.5 3.969V13.5a.5.5 0 0 1-1 0V7.97A4 4 0 0 1 4 3.999z"/>
+                        </svg>
                     </div>
 
                     <div style="width: 95vw;"></div>
@@ -264,6 +275,7 @@
         <script src="javascript/intersect.js"></script>
         <script src="javascript/union.js"></script>
         <script src="javascript/extract.js"></script>
+        <script src="javascript/mapChange.js"></script>
 
         <!-- Imported js -->
         <!-- <script src="https://unpkg.com/shpjs@latest/dist/shp.js"></script> -->
diff --git a/javascript/mapChange.js b/javascript/mapChange.js
new file mode 100644
index 0000000..ef0097a
--- /dev/null
+++ b/javascript/mapChange.js
@@ -0,0 +1,98 @@
+// Variabler:
+
+var points = {
+    "type": "FeatureCollection",
+    "features": [
+        {
+            "type": "Feature",
+            "geometry": {
+              "type": "Point",
+              "coordinates": [10.4044907, 63.4173049]
+            },
+            "properties": {
+              "name": "NTNU Gløshaugen"
+            }
+        },
+        {
+            "type": "Feature",
+            "geometry": {
+              "type": "Point",
+              "coordinates": [10.4696324, 63.4079572]
+            },
+            "properties": {
+              "name": "NTNU Dragvoll"
+            }
+        },
+        {
+            "type": "Feature",
+            "geometry": {
+              "type": "Point",
+              "coordinates": [10.4336351, 63.4138729]
+            },
+            "properties": {
+              "name": "NTNU Moholt"
+            }
+        }
+    ]
+}
+
+var m = "m1"; // Hvilket kart en bruker
+var layersOnMap = []; // Hvilke kartlag som var på før en byttet til "m2"
+var NTNU_points = L.geoJSON(points, {style: {color: "blue"}}).bindPopup(function(point) {return point.feature.properties.name;})
+
+// Bytter layout på nettsiden ved kartbytte
+
+function changeMap() {
+    
+    // Hvis en box allerede er åpen, må denne lukkes først:
+    
+    if (boolskBox) {
+        closeBox(box);
+    }
+
+    // Avhengig av hvilket kart en allerede har oppe, bytter en til motsatt status:
+
+    if (m == "m1") {
+        m = "m2";
+        
+        // Endrer knappene i menyen:
+        document.getElementById("buttons1").style.display = "none";
+        document.getElementById("buttons2").style.display = "flex";
+
+        // Endrer knappene nedrest til høyre i kartet:
+        document.getElementById("sidebarOpener").style.display = "none";
+        document.getElementById("mapChanger").style.marginLeft = "0";
+
+        // Skjuler synlige kartlag i kartet:
+        for (key in overlayMaps) {
+            var layer = overlayMaps[key];
+            if (map.hasLayer(layer)) {
+                handleLayer(key);
+                layersOnMap.push(key);
+            }
+        }
+
+        // Legger til nye punkt-markører i kartet:
+        NTNU_points.addTo(map);
+    } else if (m == "m2") {
+        m = "m1";
+
+        // Endrer knappene i menyen:
+        document.getElementById("buttons1").style.display = "flex";
+        document.getElementById("buttons2").style.display = "none";
+
+        // Endrer knappene nedrest til høyre i kartet:
+        document.getElementById("sidebarOpener").style.display = "block";
+        document.getElementById("mapChanger").style.marginLeft = "8vh";
+
+        // Fjerner punkt-markørene fra kartet:
+        if (map.hasLayer(NTNU_points)) {
+            map.removeLayer(NTNU_points);
+        }
+
+        // Legger til kartlagene som lå i kartet før en byttet kartmodus:
+        while (layersOnMap.length > 0) {
+            handleLayer(layersOnMap.shift());
+        }
+    }
+}
-- 
GitLab