Finds the difference between multiple polygons by clipping the subsequent polygon from the first.
npm install @turf/differenceFinds the difference between multiple [polygons][1] by clipping the subsequent polygon from the first.
* features [FeatureCollection][2]<([Polygon][1] | [MultiPolygon][3])> input Polygon features
``javascript
var polygon1 = turf.polygon([[
[128, -26],
[141, -26],
[141, -21],
[128, -21],
[128, -26]
]], {
"fill": "#F00",
"fill-opacity": 0.1
});
var polygon2 = turf.polygon([[
[126, -28],
[140, -28],
[140, -20],
[126, -20],
[126, -28]
]], {
"fill": "#00F",
"fill-opacity": 0.1
});
var difference = turf.difference(turf.featureCollection([polygon1, polygon2]));
//addToMap
var addToMap = [polygon1, polygon2, difference];
`
Returns ([Feature][4]<([Polygon][1] | [MultiPolygon][3])> | null) a Polygon or MultiPolygon feature showing the area of polygon1 excluding the area of polygon2 (if empty returns null)
[1]: https://tools.ietf.org/html/rfc7946#section-3.1.6
[2]: https://tools.ietf.org/html/rfc7946#section-3.3
[3]: https://tools.ietf.org/html/rfc7946#section-3.1.7
[4]: https://tools.ietf.org/html/rfc7946#section-3.2
---
This module is part of the Turfjs project, an open source module collection dedicated to geographic algorithms. It is maintained in the Turfjs/turf repository, where you can create PRs and issues.
Install this single module individually:
`sh`
$ npm install @turf/difference
Or install the all-encompassing @turf/turf module that includes all modules as functions:
`sh``
$ npm install @turf/turf