Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

merge-polygons

ecadagiani326MIT1.1.3TypeScript support: included

Merge non continuous geojson polygons into multiples concave polygons based on polygons distance.

merge, polygons, polygon, geojson, concave, convex, dissolve, combine, join, adjacent, simple, planar, shape, shapes, distance

readme

merge-polygons

https://www.npmjs.com/package/merge-polygons

Merge non continuous geojson polygons into multiples concave polygons based on polygons distance.

nonMerged merged

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.

changelog

1.0.0 - 2016-01-07

  • Removed: unused speed test
  • Added: Automatic routing between previously unsupported conversions (#27)
  • Removed: xxx2xxx() and xxx2xxxRaw() functions (#27)
  • Removed: convert() class (#27)
  • Changed: all functions to lookup dictionary (#27)
  • Changed: ansi to ansi256 (#27)
  • Fixed: argument grouping for functions requiring only one argument (#27)

0.6.0 - 2015-07-23

  • Added: methods to handle ANSI 16/256 colors:
    • rgb2ansi16
    • rgb2ansi
    • hsl2ansi16
    • hsl2ansi
    • hsv2ansi16
    • hsv2ansi
    • hwb2ansi16
    • hwb2ansi
    • cmyk2ansi16
    • cmyk2ansi
    • keyword2ansi16
    • keyword2ansi
    • ansi162rgb
    • ansi162hsl
    • ansi162hsv
    • ansi162hwb
    • ansi162cmyk
    • ansi162keyword
    • ansi2rgb
    • ansi2hsl
    • ansi2hsv
    • ansi2hwb
    • ansi2cmyk
    • ansi2keyword (#18)

0.5.3 - 2015-06-02

  • Fixed: hsl2hsv does not return NaN anymore when using [0,0,0] (#15)

Check out commit logs for older releases