// npm install martinez-polygon-clipping polygon-clipping // node index.js const fs = require('fs') const martinez = require('martinez-polygon-clipping') const polygonClipping = require('polygon-clipping') const input = require('./input.json') const clip = require('./clip.json') function apply (intersection) { const result = intersection( input.features[0].geometry.coordinates, clip.features[0].geometry.coordinates) const features = result.map((coordinates) => ({ "type": "Feature", "properties": {}, "geometry": { "type": "Polygon", "coordinates": coordinates } })) return JSON.stringify({ "type": "FeatureCollection", "features": features }) } fs.writeFileSync('./expected.json', apply(polygonClipping.intersection)) fs.writeFileSync('./actual.json', apply(martinez.intersection))