// 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(op, area, clip) { // console.log(input); // console.log(clip); const result = op( area, clip, ); return JSON.stringify({ 'type': 'FeatureCollection', 'features': [{ 'type': 'Feature', 'properties': {}, 'geometry': { 'type': 'MultiPolygon', 'coordinates': result } }] }); } fs.writeFileSync('./expected.json', apply( polygonClipping.difference, input.features[0].geometry.coordinates, clip.features[0].geometry.coordinates )); fs.writeFileSync('./actual.json', apply( martinez.diff, input.features[0].geometry.coordinates, clip.features[0].geometry.coordinates ));