| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- import WKTWriter from './io/WKTWriter'
- import IsValidOp from './operation/valid/IsValidOp'
- import InteriorPointArea from './algorithm/InteriorPointArea'
- import UnaryUnionOp from './operation/union/UnaryUnionOp'
- import UnionOp from './operation/union/UnionOp'
- import InteriorPointLine from './algorithm/InteriorPointLine'
- import IsSimpleOp from './operation/IsSimpleOp'
- import BufferOp from './operation/buffer/BufferOp'
- import ConvexHull from './algorithm/ConvexHull'
- import Centroid from './algorithm/Centroid'
- import RelateOp from './operation/relate/RelateOp'
- import InteriorPointPoint from './algorithm/InteriorPointPoint'
- import DistanceOp from './operation/distance/DistanceOp'
- import OverlayOp from './operation/overlay/OverlayOp'
- import BoundaryOp from './operation/BoundaryOp'
- import Geometry from './geom/Geometry'
- import LineString from './geom/LineString'
- import MultiLineString from './geom/MultiLineString'
- LineString.prototype.getBoundary = function() {
- return BoundaryOp.getBoundary(this)
- }
- MultiLineString.prototype.getBoundary = function() {
- return BoundaryOp.getBoundary(this)
- }
- Geometry.prototype.equalsTopo = function(g) {
- return RelateOp.equalsTopo(this, g)
- }
- Geometry.prototype.equals = function(g) {
- if (g === null) return false
- return RelateOp.equalsTopo(this, g)
- }
- Geometry.prototype.union = function() {
- if (arguments.length === 0) {
- return UnaryUnionOp.union(this)
- } else if (arguments.length === 1) {
- const other = arguments[0]
- return UnionOp.union(this, other)
- }
- }
- Geometry.prototype.isValid = function() {
- return IsValidOp.isValid(this)
- }
- Geometry.prototype.intersection = function(other) {
- return OverlayOp.intersection(this, other)
- }
- Geometry.prototype.covers = function(g) {
- return RelateOp.covers(this, g)
- }
- Geometry.prototype.coveredBy = function(g) {
- return RelateOp.covers(g, this)
- }
- Geometry.prototype.touches = function(g) {
- return RelateOp.touches(this, g)
- }
- Geometry.prototype.intersects = function(g) {
- return RelateOp.intersects(this, g)
- }
- Geometry.prototype.within = function(g) {
- return RelateOp.contains(g, this)
- }
- Geometry.prototype.overlaps = function(g) {
- return RelateOp.overlaps(this, g)
- }
- Geometry.prototype.disjoint = function(g) {
- return RelateOp.disjoint(this, g)
- }
- Geometry.prototype.crosses = function(g) {
- return RelateOp.crosses(this, g)
- }
- Geometry.prototype.buffer = function() {
- if (arguments.length === 1) {
- const distance = arguments[0]
- return BufferOp.bufferOp(this, distance)
- } else if (arguments.length === 2) {
- const distance = arguments[0]; const quadrantSegments = arguments[1]
- return BufferOp.bufferOp(this, distance, quadrantSegments)
- } else if (arguments.length === 3) {
- const distance = arguments[0]; const quadrantSegments = arguments[1]; const endCapStyle = arguments[2]
- return BufferOp.bufferOp(this, distance, quadrantSegments, endCapStyle)
- }
- }
- Geometry.prototype.convexHull = function() {
- return new ConvexHull(this).getConvexHull()
- }
- Geometry.prototype.relate = function() {
- if (arguments.length === 1) {
- const geometry = arguments[0]
- return RelateOp.relate(this, geometry)
- } else if (arguments.length === 2) {
- const geometry = arguments[0]; const intersectionPattern = arguments[1]
- return RelateOp.relate(this, geometry).matches(intersectionPattern)
- }
- }
- Geometry.prototype.getCentroid = function() {
- if (this.isEmpty()) return this._factory.createPoint()
- const centPt = Centroid.getCentroid(this)
- return this.createPointFromInternalCoord(centPt, this)
- }
- Geometry.prototype.getInteriorPoint = function() {
- if (this.isEmpty()) return this._factory.createPoint()
- let intPt = null
- const dim = this.getDimension()
- if (dim === 0)
- intPt = new InteriorPointPoint(this)
- else if (dim === 1)
- intPt = new InteriorPointLine(this)
- else intPt = new InteriorPointArea(this)
- const interiorPt = intPt.getInteriorPoint()
- return this.createPointFromInternalCoord(interiorPt, this)
- }
- Geometry.prototype.symDifference = function(other) {
- return OverlayOp.symDifference(this, other)
- }
- Geometry.prototype.createPointFromInternalCoord = function(coord, exemplar) {
- exemplar.getPrecisionModel().makePrecise(coord)
- return exemplar.getFactory().createPoint(coord)
- }
- Geometry.prototype.toText = function() {
- const writer = new WKTWriter()
- return writer.write(this)
- }
- Geometry.prototype.toString = function() {
- this.toText()
- }
- Geometry.prototype.contains = function(g) {
- return RelateOp.contains(this, g)
- }
- Geometry.prototype.difference = function(other) {
- return OverlayOp.difference(this, other)
- }
- Geometry.prototype.isSimple = function() {
- const op = new IsSimpleOp(this)
- return op.isSimple()
- }
- Geometry.prototype.isWithinDistance = function(geom, distance) {
- const envDist = this.getEnvelopeInternal().distance(geom.getEnvelopeInternal())
- if (envDist > distance) return false
- return DistanceOp.isWithinDistance(this, geom, distance)
- }
- Geometry.prototype.distance = function(g) {
- return DistanceOp.distance(this, g)
- }
|