Skip to content
Snippets Groups Projects
Commit 93d22cc3 authored by Jakob Severin Steffensen Hjelseth's avatar Jakob Severin Steffensen Hjelseth
Browse files

Ferdigstille og kommentere

parent bf94843c
No related branches found
No related tags found
1 merge request!68Resolve "Input Polygon"
Pipeline #239088 passed
...@@ -36,11 +36,11 @@ function makeBuffer() { ...@@ -36,11 +36,11 @@ function makeBuffer() {
var buffer = turf.buffer(layer, distance, {units: "meters"}); // Lager buffer 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 if (document.getElementById("bufferCheck").checked) { // Om en har huket av for at en skal 'dissolve' gjøres det
// Dette er nytt:
if (isMultiPolygon(buffer)) { // Kan ikke sende MultiPolygon inn i dissolved if (isMultiPolygon(buffer)) { // Kan ikke sende MultiPolygon inn i dissolved
buffer = fixMultiPolygons(buffer); buffer = fixMultiPolygons(buffer);
} }
// #
var dissolved = turf.dissolve(buffer); var dissolved = turf.dissolve(buffer);
var newLayer = L.geoJSON(dissolved, {style: getStyle()}); var newLayer = L.geoJSON(dissolved, {style: getStyle()});
} else { // Ellers lager den bare mange ulike buffer-soner } else { // Ellers lager den bare mange ulike buffer-soner
......
...@@ -22,11 +22,10 @@ function doDissolve() { ...@@ -22,11 +22,10 @@ function doDissolve() {
// Prøver å kjøre dissolve-funksjonen: // Prøver å kjøre dissolve-funksjonen:
try { try {
// Dette er nytt:
if (isMultiPolygon(layer)) { if (isMultiPolygon(layer)) { // Kan ikke sende MultiPolygon inn i dissolved
layer = fixMultiPolygons(layer); layer = fixMultiPolygons(layer);
} }
//#
var dissolved = turf.dissolve(layer); // Kjører dissolve var dissolved = turf.dissolve(layer); // Kjører dissolve
var newLayer = L.geoJSON(dissolved, {style: getStyle()}); var newLayer = L.geoJSON(dissolved, {style: getStyle()});
......
...@@ -55,32 +55,39 @@ function multiPolygonToFeatureCollection(layer) { // Funksjon som gjør om featu ...@@ -55,32 +55,39 @@ function multiPolygonToFeatureCollection(layer) { // Funksjon som gjør om featu
return turf.featureCollection(features); return turf.featureCollection(features);
} }
function fixMultiPolygons(layer) { // Annen variant som løser MultiPolygon-problemet for buffer-funksjonen function fixMultiPolygons(layer) { // Annen variant som løser MultiPolygon-problemet for de ulike GIS-funksjonene
var features = layer["features"]; var features = layer["features"];
var k = features.length; var k = features.length;
for (var i = 0; i < k; i++) { for (var i = 0; i < k; i++) {
if (features[i]["geometry"]["type"] == "MultiPolygon") { /*
var coord = features[i]["geometry"]["coordinates"]; Her itererer en gjennom alle features i FeatureCollection,
plukker ut alle features som er registrert som MultiPolygon,
og gjør dem om til flere Polygons
*/
if (features[i]["geometry"]["type"] == "MultiPolygon") { // Er det MultiPolygon?
var coord = features[i]["geometry"]["coordinates"]; // Henter geometrien til alle Polygonene
// Oppdaterer første polygon:
features[i]["geometry"]["type"] = "Polygon"; features[i]["geometry"]["type"] = "Polygon";
features[i]["geometry"]["coordinates"] = coord[0]; features[i]["geometry"]["coordinates"] = coord[0];
for (var j = 1; j < coord.length; j++) { for (var j = 1; j < coord.length; j++) {
// Lager så nye features for resten av polygonene i MultiPolygonet:
var newFeature = {}; var newFeature = {};
for (key in features[i]) { for (key in features[i]) { // Vil ha de samme nøklene og deres verdier som originalen
if (key != "geometry") { if (key != "geometry") { // ... men ikke lik geometri
newFeature[key] = features[i][key]; newFeature[key] = features[i][key];
} }
} }
newFeature["geometry"] = { newFeature["geometry"] = { // Legger til geometri
"type": "Polygon", "type": "Polygon",
"coordinates": coord[j] "coordinates": coord[j] // Henter koordinat fra original-lista
}; };
features.push(newFeature); features.push(newFeature); // Legger til ny feature
} }
} }
} }
layer["features"] = features; layer["features"] = features; // Oppdaterer features-lista
return layer; return layer;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment