BasicSegmentString.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import WKTWriter from '../io/WKTWriter'
  2. import CoordinateArraySequence from '../geom/impl/CoordinateArraySequence'
  3. import Octant from './Octant'
  4. import SegmentString from './SegmentString'
  5. export default class BasicSegmentString {
  6. constructor() {
  7. BasicSegmentString.constructor_.apply(this, arguments)
  8. }
  9. static constructor_() {
  10. this._pts = null
  11. this._data = null
  12. const pts = arguments[0], data = arguments[1]
  13. this._pts = pts
  14. this._data = data
  15. }
  16. getCoordinates() {
  17. return this._pts
  18. }
  19. size() {
  20. return this._pts.length
  21. }
  22. getCoordinate(i) {
  23. return this._pts[i]
  24. }
  25. isClosed() {
  26. return this._pts[0].equals(this._pts[this._pts.length - 1])
  27. }
  28. getSegmentOctant(index) {
  29. if (index === this._pts.length - 1) return -1
  30. return Octant.octant(this.getCoordinate(index), this.getCoordinate(index + 1))
  31. }
  32. setData(data) {
  33. this._data = data
  34. }
  35. getData() {
  36. return this._data
  37. }
  38. toString() {
  39. return WKTWriter.toLineString(new CoordinateArraySequence(this._pts))
  40. }
  41. get interfaces_() {
  42. return [SegmentString]
  43. }
  44. }