UNPKG

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

47 lines (45 loc) 1.4 kB
import CoordinateList from '../../geom/CoordinateList' import CoordinateArrays from '../../geom/CoordinateArrays' import ArrayList from '../../../../../java/util/ArrayList' export default class EdgeString { constructor () { this._factory = null this._directedEdges = new ArrayList() this._coordinates = null let factory = arguments[0] this._factory = factory } getCoordinates () { if (this._coordinates === null) { let forwardDirectedEdges = 0 let reverseDirectedEdges = 0 const coordinateList = new CoordinateList() for (const i = this._directedEdges.iterator(); i.hasNext();) { const directedEdge = i.next() if (directedEdge.getEdgeDirection()) { forwardDirectedEdges++ } else { reverseDirectedEdges++ } coordinateList.add(directedEdge.getEdge().getLine().getCoordinates(), false, directedEdge.getEdgeDirection()) } this._coordinates = coordinateList.toCoordinateArray() if (reverseDirectedEdges > forwardDirectedEdges) { CoordinateArrays.reverse(this._coordinates) } } return this._coordinates } toLineString () { return this._factory.createLineString(this.getCoordinates()) } add (directedEdge) { this._directedEdges.add(directedEdge) } interfaces_ () { return [] } getClass () { return EdgeString } }