M Visvalingam and J D Whyatt line simplification algorithm
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmark
test
.gitignore
.jshintrc
.travis.yml
History.md
Makefile
Readme.md
index.js
package.json
yarn.lock

Readme.md

NPM version Build Status Dependency Status

vis-why

M Visvalingam and J D Whyatt line simplification algorithm Implementation based on Mike Bostock's code but without a d3 dependency.

Live demo is here

Installation

Install with npm:

$ npm install vis-why

API

simplify(polyline, limit)

Simplify polyline by repeated elimination of the smallest area.

  • polyline - array of points representing a polyline, each point represented by coordinate array [x, y]
  • limit - number of points/vortexes that will remain in the resulting polyline

simplify(polyline, limit, areaFn)

You can specify a custom areaFn if your points are not represented by [x, y] pair. For example if you have an array of {x, y} objects you can use something like this:

function area(a, b, c) {
  return Math.abs(
    (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y)
  );
}

simplify(poly, 4, area);

License

The MIT License (MIT)

Copyright (c) 2014