node-red-contrib-tak-registration
Version:
A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK
46 lines (44 loc) • 1.26 kB
JavaScript
import Geometry from '../geom/Geometry'
import Coordinate from '../geom/Coordinate'
import Point from '../geom/Point'
import Double from '../../../../java/lang/Double'
import GeometryCollection from '../geom/GeometryCollection'
export default class InteriorPointPoint {
constructor () {
this._centroid = null
this._minDistance = Double.MAX_VALUE
this._interiorPoint = null
let g = arguments[0]
this._centroid = g.getCentroid().getCoordinate()
this.add(g)
}
getInteriorPoint () {
return this._interiorPoint
}
add () {
if (arguments[0] instanceof Geometry) {
let geom = arguments[0]
if (geom instanceof Point) {
this.add(geom.getCoordinate())
} else if (geom instanceof GeometryCollection) {
var gc = geom
for (var i = 0; i < gc.getNumGeometries(); i++) {
this.add(gc.getGeometryN(i))
}
}
} else if (arguments[0] instanceof Coordinate) {
let point = arguments[0]
var dist = point.distance(this._centroid)
if (dist < this._minDistance) {
this._interiorPoint = new Coordinate(point)
this._minDistance = dist
}
}
}
interfaces_ () {
return []
}
getClass () {
return InteriorPointPoint
}
}