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

Fix

parent 2578a442
No related branches found
No related tags found
1 merge request!68Resolve "Input Polygon"
Pipeline #238967 passed
......@@ -38,7 +38,7 @@ function makeBuffer() {
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
buffer = multiPolygonToFeatureCollection(buffer);
buffer = fixMultiPolygons(buffer);
}
// #
var dissolved = turf.dissolve(buffer);
......
......@@ -24,7 +24,7 @@ function doDissolve() {
try {
// Dette er nytt:
if (isMultiPolygon(layer)) {
layer = multiPolygonToFeatureCollection(layer);
layer = fixMultiPolygons(layer);
}
//#
......
......@@ -40,41 +40,48 @@ function isMultiPolygon(layer) { // Inneholder 'layer' features som er MultiPoly
return false;
}
function multiPolygonToFeatureCollection(layer) {// Funksjon som gjør om features i 'layer' til FeatureCollection istedenfor MultiPolygon
function multiPolygonToFeatureCollection(layer) { // Funksjon som gjør om features i 'layer' til FeatureCollection istedenfor MultiPolygon
// 'layer' er her et GeoJSON-lag
more = false;
for (var i = 0; i < layer["geometry"]["coordinates"].length; i++) {
var geometry = {
"type": "Polygon",
"coordinates": layer["geometry"]["coordinates"][i]
};
features.push(turf.feature(geometry));
}
try {
if (layer["features"]) {
more = true;
}
} catch {}
console.log(more);
var features = [];
return turf.featureCollection(features);
}
if (more) {
for (var i = 0; i < layer["features"]; i++) {
for (var j = 0; j < layer["features"][i]["geometry"]["coordinates"].length; j++) {
console.log(layer["features"][i]["geometry"]["coordinates"][j]);
var geometry = {
function fixMultiPolygons(layer) { // Annen variant som løser MultiPolygon-problemet for buffer-funksjonen
var features = layer["features"];
var k = features.length;
for (var i = 0; i < k; i++) {
if (features[i]["geometry"]["type"] == "MultiPolygon") {
var coord = features[i]["geometry"]["coordinates"];
features[i]["geometry"]["type"] = "Polygon";
features[i]["geometry"]["coordinates"] = coord[0];
for (var j = 1; j < ccoord.length; j++) {
newFeature = {};
for (key in features[i]) {
if (key != "geometry") {
newFeature[key] = features[i][key];
}
}
newFeatures["geometry"] = {
"type": "Polygon",
"coordinates": layer["features"][i]["geometry"]["coordinates"][j]
"coordinates": coord[j]
};
features.push(turf.feature(geometry));
features.push(newFeature);
}
}
} else {
for (var i = 0; i < layer["geometry"]["coordinates"].length; i++) {
var geometry = {
"type": "Polygon",
"coordinates": layer["geometry"]["coordinates"][i]
};
features.push(turf.feature(geometry));
}
}
return turf.featureCollection(features);
layer["features"] = features;
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