merge-polygons
v1.1.3
Published
Merge non continuous geojson polygons into multiples concave polygons based on polygons distance.
Downloads
268
Maintainers
Readme
merge-polygons
https://www.npmjs.com/package/merge-polygons
Merge non continuous geojson polygons into multiples concave polygons based on polygons distance.
Usage
Command
npx merge-polygons -i input.geojson -o output.geojson --maxDistance 4 --maxEdge 6 --units 'kilometers'
Options :
-i, --input Input path of geojson file [string] [requis]
-o, --output Output path of geojson file [string] [default : "output.geojson"]
-d, --maxDistance distance in kilometers to consider polygons belonging to
the same group [number] [default : 4]
-e, --maxEdge the length (in 'units') of an edge necessary for part of
the hull to become concave. Cannot be lower than
maxDistance + 1. [number] [default : 5]
-u, --units can be degrees, radians, miles, or kilometers [string] [default : "kilometers"]
-h, --help Display help [booléen]
Install
npm -i merge-polygons
Require
const { mergePolygonsByDistance } = require('merge-polygons');
const geoResult = await mergePolygonsByDistance(geoInput, { maxDistance: 5, units: 'kilometers', maxEdge: 6 });
Tips
To improve performance, simplify your geometry before execute merge polygons. Use dissolve function, and simplify. Example with mapshaper
and turf
:
const { 'result.geojson': buffer } = await mapshaper.applyCommands(`${path} -dissolve2 gap-fill-area=5km2 -o result.geojson`);
let result = JSON.parse(buffer.toString());
result = turf.simplify(result, { tolerance: 0.001, highQuality: false, mutate: true });
const geoResult = await mergePolygonsByDistance(result, { maxDistance: 5, units: 'kilometers', maxEdge: 6 });
Example
Test from NPX:
npx merge-polygons -i example/example.geojson -o example/example_merged.geojson --maxdistance 4 --maxEdge 6 --units 'kilometers'
Test from code:
npm run example
launch
example/example.js
, which simplify example_complex.geojson, and merge polygons.