| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- import Geometry from './Geometry'
- import CoordinateFilter from './CoordinateFilter'
- import hasInterface from '../../../../hasInterface'
- import GeometryComponentFilter from './GeometryComponentFilter'
- import Dimension from './Dimension'
- import GeometryFilter from './GeometryFilter'
- import CoordinateSequenceFilter from './CoordinateSequenceFilter'
- import Puntal from './Puntal'
- import Envelope from './Envelope'
- import Assert from '../util/Assert'
- export default class Point extends Geometry {
- constructor() {
- super()
- Point.constructor_.apply(this, arguments)
- }
- static constructor_() {
- this._coordinates = null
- const coordinates = arguments[0], factory = arguments[1]
- Geometry.constructor_.call(this, factory)
- this.init(coordinates)
- }
- computeEnvelopeInternal() {
- if (this.isEmpty())
- return new Envelope()
-
- const env = new Envelope()
- env.expandToInclude(this._coordinates.getX(0), this._coordinates.getY(0))
- return env
- }
- getCoordinates() {
- return this.isEmpty() ? [] : [this.getCoordinate()]
- }
- copyInternal() {
- return new Point(this._coordinates.copy(), this._factory)
- }
- equalsExact() {
- if (arguments.length === 2 && (typeof arguments[1] === 'number' && arguments[0] instanceof Geometry)) {
- const other = arguments[0], tolerance = arguments[1]
- if (!this.isEquivalentClass(other))
- return false
-
- if (this.isEmpty() && other.isEmpty())
- return true
-
- if (this.isEmpty() !== other.isEmpty())
- return false
-
- return this.equal(other.getCoordinate(), this.getCoordinate(), tolerance)
- } else {
- return super.equalsExact.apply(this, arguments)
- }
- }
- normalize() {}
- getCoordinate() {
- return this._coordinates.size() !== 0 ? this._coordinates.getCoordinate(0) : null
- }
- getBoundaryDimension() {
- return Dimension.FALSE
- }
- reverseInternal() {
- return this.getFactory().createPoint(this._coordinates.copy())
- }
- getTypeCode() {
- return Geometry.TYPECODE_POINT
- }
- getDimension() {
- return 0
- }
- getNumPoints() {
- return this.isEmpty() ? 0 : 1
- }
- getX() {
- if (this.getCoordinate() === null)
- throw new IllegalStateException('getX called on empty Point')
-
- return this.getCoordinate().x
- }
- compareToSameClass() {
- if (arguments.length === 1) {
- const other = arguments[0]
- const point = other
- return this.getCoordinate().compareTo(point.getCoordinate())
- } else if (arguments.length === 2) {
- const other = arguments[0], comp = arguments[1]
- const point = other
- return comp.compare(this._coordinates, point._coordinates)
- }
- }
- apply() {
- if (hasInterface(arguments[0], CoordinateFilter)) {
- const filter = arguments[0]
- if (this.isEmpty())
- return null
-
- filter.filter(this.getCoordinate())
- } else if (hasInterface(arguments[0], CoordinateSequenceFilter)) {
- const filter = arguments[0]
- if (this.isEmpty()) return null
- filter.filter(this._coordinates, 0)
- if (filter.isGeometryChanged()) this.geometryChanged()
- } else if (hasInterface(arguments[0], GeometryFilter)) {
- const filter = arguments[0]
- filter.filter(this)
- } else if (hasInterface(arguments[0], GeometryComponentFilter)) {
- const filter = arguments[0]
- filter.filter(this)
- }
- }
- getBoundary() {
- return this.getFactory().createGeometryCollection()
- }
- getGeometryType() {
- return Geometry.TYPENAME_POINT
- }
- getCoordinateSequence() {
- return this._coordinates
- }
- getY() {
- if (this.getCoordinate() === null)
- throw new IllegalStateException('getY called on empty Point')
-
- return this.getCoordinate().y
- }
- isEmpty() {
- return this._coordinates.size() === 0
- }
- init(coordinates) {
- if (coordinates === null)
- coordinates = this.getFactory().getCoordinateSequenceFactory().create([])
-
- Assert.isTrue(coordinates.size() <= 1)
- this._coordinates = coordinates
- }
- isSimple() {
- return true
- }
- get interfaces_() {
- return [Puntal]
- }
- }
|