maptastik
12/1/2018 - 4:11 PM

Consolidate polygon features

Consolidate multiple Polygon and MultiPolygon feature geometries into a single MultiPolygon geometry array

function consolidatePolygons(polygonsJson) {
  let consolidatedPolygonsArray = [];
  let polygonsFeatures = polygonsJson.features;

  for (let i = 0; i < polygonsFeatures.length; i++) {
    let polygonFeature = polygonsFeatures[i];
    let coordinates = polygonFeature.geometry.coordinates;
    if (polygonFeature.geometry.type === "MultiPolygon") {
      for (let j = 0; j < coordinates.length; j++) {
        consolidatedPolygonsArray.push(coordinates[j]);
      }
    } else if (polygonFeature.geometry.type === "Polygon") {
      consolidatedPolygonsArray.push(coordinates);
    } else {
      console.log(
        `Geometry at index ${i} is not a Polygon or MultiPolygon. Skipping.`
      );
      continue;
    }
  }
  return consolidatedPolygonsArray;
}