/
get-close-points.js
43 lines (33 loc) · 1.04 KB
/
get-close-points.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const fs = require('fs');
const turf = require('@turf/turf');
const darkAccCluster = require('./src/cluster-dark.json');
const THRESHOLD = 0.05;
const output = [];
const getNearest = (targetPoint, points) => {
const nearest = turf.nearestPoint(targetPoint, points);
return nearest;
}
const findNearest = (darkAccCluster, elem) => {
const filterOutElem = (cluster) => cluster.features.filter((f, i) => i !== elem);
const points = filterOutElem(darkAccCluster);
if (darkAccCluster.features[elem]) {
const nearestPoint = getNearest(darkAccCluster.features[elem], turf.featureCollection(points));
if (nearestPoint.properties.distanceToPoint < THRESHOLD) {
return nearestPoint;
}
}
}
const run = () => {
for (let i = 0; i <= darkAccCluster.features.length; i++) {
let result = findNearest(darkAccCluster, i);
if (result) {
output.push(result);
}
}
fs.writeFileSync(
'closest-cluster-for-dark.json',
JSON.stringify(turf.featureCollection(output), null, 2),
(err) => console.log(err)
);
}
run();