30 lines
773 B
TypeScript
30 lines
773 B
TypeScript
|
import fs from "fs";
|
||
|
import {GeoOperations} from "../Logic/GeoOperations";
|
||
|
import ScriptUtils from "./ScriptUtils";
|
||
|
|
||
|
/**
|
||
|
* Given one of more files, calculates a somewhat convex hull for them
|
||
|
* @param file
|
||
|
*/
|
||
|
|
||
|
function makeConvex(file) {
|
||
|
ScriptUtils.erasableLog("Handling", file)
|
||
|
const geoJson = JSON.parse(fs.readFileSync(file, "UTF8"))
|
||
|
const convex = GeoOperations.convexHull(geoJson, {concavity: 2})
|
||
|
if (convex.properties === undefined) {
|
||
|
convex.properties = {}
|
||
|
}
|
||
|
fs.writeFileSync(file + ".convex.geojson", JSON.stringify(convex))
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
let args = [...process.argv]
|
||
|
args.splice(0, 2)
|
||
|
args.forEach(file => {
|
||
|
try {
|
||
|
makeConvex(file)
|
||
|
} catch (e) {
|
||
|
console.error("Could not handle file ", file, " due to ", e)
|
||
|
}
|
||
|
})
|