diff --git a/index.html b/index.html index 64434a45d946cac17eb4c0f82cd032db0bb7b318..61dc05099bc8c24a27c63fe5f1c2d56fd2dae9d2 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 48c5f834a7a375be1cb4b929ea66cb316ec0c512..694f997dca9a31aaec9a389fffd905a65ad95e87 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 0000000000000000000000000000000000000000..c3c50951fc83f0ff3bcc6bf10a9f3d6973241595 --- /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