LineStringExtracter.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import LineString from '../LineString'
  2. import GeometryCollection from '../GeometryCollection'
  3. import ArrayList from '../../../../../java/util/ArrayList'
  4. import GeometryFilter from '../GeometryFilter'
  5. export default class LineStringExtracter {
  6. constructor() {
  7. LineStringExtracter.constructor_.apply(this, arguments)
  8. }
  9. static constructor_() {
  10. this._comps = null
  11. const comps = arguments[0]
  12. this._comps = comps
  13. }
  14. static getGeometry(geom) {
  15. return geom.getFactory().buildGeometry(LineStringExtracter.getLines(geom))
  16. }
  17. static getLines() {
  18. if (arguments.length === 1) {
  19. const geom = arguments[0]
  20. return LineStringExtracter.getLines(geom, new ArrayList())
  21. } else if (arguments.length === 2) {
  22. const geom = arguments[0], lines = arguments[1]
  23. if (geom instanceof LineString)
  24. lines.add(geom)
  25. else if (geom instanceof GeometryCollection)
  26. geom.apply(new LineStringExtracter(lines))
  27. return lines
  28. }
  29. }
  30. filter(geom) {
  31. if (geom instanceof LineString) this._comps.add(geom)
  32. }
  33. get interfaces_() {
  34. return [GeometryFilter]
  35. }
  36. }