compare-geojson
Version:
Compare a features new and old versions in GeoJSON
40 lines (30 loc) • 1.18 kB
JavaScript
;
var fs = require('fs');
var path = require('path');
var turfWithin = require('turf-within');
var turfCentroid = require('turf-centroid');
var turfFC = require('turf-featurecollection');
module.exports = priority_area;
/**
* Returns a flag if a feature is located in a priority area
* @param {object} newVersion Features new version in GeoJSON.
* @param {object} oldVersion Features old version in GeoJSON.
* @param {Function} callback called with (error, result).
* @returns {undefined} calls callback.
*/
function priority_area(newVersion, oldVersion, callback) {
var cfVersion = 1;
// Exit if the feature has been deleted
if (!newVersion || !newVersion.geometry) return callback(null, {});
// Load the areas
var priority_area_file = path.join(__dirname, '../data/priority_areas.geojson');
var priority_areas = JSON.parse(fs.readFileSync(priority_area_file, 'utf-8'));
var result = Boolean(turfWithin(turfFC([turfCentroid(newVersion)]), priority_areas).features.length);
// console.log('Result', result); // DEBUG
return callback(null, {
'result:priority_area': {
'cfVersion': cfVersion,
'priority_area': result
}
});
}