Documentation
¶
Overview ¶
Package geos provides an interface to GEOS. See https://trac.osgeo.org/geos/.
Index ¶
- Constants
- Variables
- func VersionCompare(major, minor, patch int) int
- type Box2D
- func (b *Box2D) Contains(other *Box2D) bool
- func (b *Box2D) ContainsPoint(x, y float64) bool
- func (b *Box2D) ContextGeom(context *Context) *Geom
- func (b *Box2D) Equals(other *Box2D) bool
- func (b *Box2D) Geom() *Geom
- func (b *Box2D) Height() float64
- func (b *Box2D) Intersects(other *Box2D) bool
- func (b *Box2D) IsEmpty() bool
- func (b *Box2D) IsPoint() bool
- func (b *Box2D) String() string
- func (b *Box2D) Width() float64
- type Box3D
- type BufCapStyle
- type BufJoinStyle
- type BufferParams
- func (p *BufferParams) Destroy()
- func (p *BufferParams) SetEndCapStyle(style BufCapStyle) *BufferParams
- func (p *BufferParams) SetJoinStyle(style BufJoinStyle) *BufferParams
- func (p *BufferParams) SetMitreLimit(mitreLimit float64) *BufferParams
- func (p *BufferParams) SetQuadrantSegments(quadSegs int) *BufferParams
- func (p *BufferParams) SetSingleSided(singleSided bool) *BufferParams
- type Context
- func (c *Context) Clone(g *Geom) *Geom
- func (c *Context) NewBufferParams() *BufferParams
- func (c *Context) NewCollection(typeID TypeID, geoms []*Geom) *Geom
- func (c *Context) NewCoordSeq(size, dims int) *CoordSeq
- func (c *Context) NewCoordSeqFromCoords(coords [][]float64) *CoordSeq
- func (c *Context) NewEmptyCollection(typeID TypeID) *Geom
- func (c *Context) NewEmptyLineString() *Geom
- func (c *Context) NewEmptyPoint() *Geom
- func (c *Context) NewEmptyPolygon() *Geom
- func (c *Context) NewGeomFromBounds(minX, minY, maxX, maxY float64) *Geom
- func (c *Context) NewGeomFromGeoJSON(geoJSON string) (*Geom, error)
- func (c *Context) NewGeomFromWKB(wkb []byte) (*Geom, error)
- func (c *Context) NewGeomFromWKT(wkt string) (*Geom, error)
- func (c *Context) NewLineString(coords [][]float64) *Geom
- func (c *Context) NewLinearRing(coords [][]float64) *Geom
- func (c *Context) NewPoint(coord []float64) *Geom
- func (c *Context) NewPointFromXY(x, y float64) *Geom
- func (c *Context) NewPoints(coords [][]float64) []*Geom
- func (c *Context) NewPolygon(coordss [][][]float64) *Geom
- func (c *Context) NewSTRtree(nodeCapacity int) *STRtree
- func (c *Context) OrientationIndex(Ax, Ay, Bx, By, Px, Py float64) int
- func (c *Context) Polygonize(geoms []*Geom) *Geom
- func (c *Context) PolygonizeValid(geoms []*Geom) *Geom
- func (c *Context) RelatePatternMatch(mat, pat string) bool
- func (c *Context) SegmentIntersection(ax0, ay0, ax1, ay1, bx0, by0, bx1, by1 float64) (float64, float64, bool)
- type ContextOption
- type CoordSeq
- func (s *CoordSeq) Clone() *CoordSeq
- func (s *CoordSeq) Destroy()
- func (s *CoordSeq) Dimensions() int
- func (s *CoordSeq) IsCCW() bool
- func (s *CoordSeq) Ordinate(idx, dim int) float64
- func (s *CoordSeq) SetOrdinate(idx, dim int, val float64)
- func (s *CoordSeq) SetX(idx int, val float64)
- func (s *CoordSeq) SetY(idx int, val float64)
- func (s *CoordSeq) SetZ(idx int, val float64)
- func (s *CoordSeq) Size() int
- func (s *CoordSeq) ToCoords() [][]float64
- func (s *CoordSeq) X(idx int) float64
- func (s *CoordSeq) Y(idx int) float64
- func (s *CoordSeq) Z(idx int) float64
- type Error
- type Geom
- func Clone(g *Geom) *Geom
- func NewCollection(typeID TypeID, geoms []*Geom) *Geom
- func NewEmptyCollection(typeID TypeID) *Geom
- func NewEmptyLineString() *Geom
- func NewEmptyPoint() *Geom
- func NewEmptyPolygon() *Geom
- func NewGeomFromBounds(minX, minY, maxX, maxY float64) *Geom
- func NewGeomFromGeoJSON(geoJSON string) (*Geom, error)
- func NewGeomFromWKB(wkb []byte) (*Geom, error)
- func NewGeomFromWKT(wkt string) (*Geom, error)
- func NewLineString(coords [][]float64) *Geom
- func NewLinearRing(coords [][]float64) *Geom
- func NewPoint(coord []float64) *Geom
- func NewPointFromXY(x, y float64) *Geom
- func NewPolygon(coordss [][][]float64) *Geom
- func Polygonize(geoms []*Geom) *Geom
- func PolygonizeValid(geoms []*Geom) *Geom
- func (g *Geom) Area() float64
- func (g *Geom) Boundary() *Geom
- func (g *Geom) Bounds() *Box2D
- func (g *Geom) Buffer(width float64, quadsegs int) *Geom
- func (g *Geom) BufferWithParams(bufferParams *BufferParams, width float64) *Geom
- func (g *Geom) BufferWithStyle(width float64, quadsegs int, endCapStyle BufCapStyle, joinStyle BufJoinStyle, ...) *Geom
- func (g *Geom) BuildArea() *Geom
- func (g *Geom) Centroid() *Geom
- func (g *Geom) ClipByBox2D(box2d *Box2D) *Geom
- func (g *Geom) ClipByRect(minX float64, minY float64, maxX float64, maxY float64) *Geom
- func (g *Geom) Clone() *Geom
- func (g *Geom) ConcaveHull(ratio float64, allowHoles uint) *Geom
- func (g *Geom) ConcaveHullByLength(ratio float64, allowHoles uint) *Geom
- func (g *Geom) ConstrainedDelaunayTriangulation() *Geom
- func (g *Geom) Contains(other *Geom) bool
- func (g *Geom) ConvexHull() *Geom
- func (g *Geom) CoordSeq() *CoordSeq
- func (g *Geom) CoverageUnion() *Geom
- func (g *Geom) CoveredBy(other *Geom) bool
- func (g *Geom) Covers(other *Geom) bool
- func (g *Geom) Crosses(other *Geom) bool
- func (g *Geom) Densify(tolerance float64) *Geom
- func (g *Geom) Destroy()
- func (g *Geom) Difference(other *Geom) *Geom
- func (g *Geom) DifferencePrec(other *Geom, gridSize float64) *Geom
- func (g *Geom) Disjoint(other *Geom) bool
- func (g *Geom) Distance(other *Geom) float64
- func (g *Geom) DistanceIndexed(other *Geom) float64
- func (g *Geom) DistanceWithin(other *Geom, dist float64) bool
- func (g *Geom) EndPoint() *Geom
- func (g *Geom) Envelope() *Geom
- func (g *Geom) Equals(other *Geom) bool
- func (g *Geom) EqualsExact(other *Geom, tolerance float64) bool
- func (g *Geom) ExteriorRing() *Geom
- func (g *Geom) FrechetDistance(other *Geom) float64
- func (g *Geom) FrechetDistanceDensify(other *Geom, densifyFrac float64) float64
- func (g *Geom) Geometry(n int) *Geom
- func (g *Geom) HasZ() bool
- func (g *Geom) HausdorffDistance(other *Geom) float64
- func (g *Geom) HausdorffDistanceDensify(other *Geom, densifyFrac float64) float64
- func (g *Geom) InteriorRing(n int) *Geom
- func (g *Geom) Interpolate(d float64) *Geom
- func (g *Geom) InterpolateNormalized(proportion float64) *Geom
- func (g *Geom) Intersection(other *Geom) *Geom
- func (g *Geom) IntersectionPrec(other *Geom, gridSize float64) *Geom
- func (g *Geom) Intersects(other *Geom) bool
- func (g *Geom) IsClosed() bool
- func (g *Geom) IsEmpty() bool
- func (g *Geom) IsRing() bool
- func (g *Geom) IsSimple() bool
- func (g *Geom) IsValid() bool
- func (g *Geom) IsValidReason() string
- func (g *Geom) LargestEmptyCircle(other *Geom, tolerance float64) *Geom
- func (g *Geom) Length() float64
- func (g *Geom) LineMerge() *Geom
- func (g *Geom) MakeValid() *Geom
- func (g *Geom) MakeValidWithParams(method MakeValidMethod, collapse MakeValidCollapsed) *Geom
- func (g *Geom) MaximumInscribedCircle(tolerance float64) *Geom
- func (g *Geom) MinimumClearance() float64
- func (g *Geom) MinimumClearanceLine() *Geom
- func (g *Geom) MinimumRotatedRectangle() *Geom
- func (g *Geom) MinimumWidth() *Geom
- func (g *Geom) NearestPoints(other *Geom) [][]float64
- func (g *Geom) Node() *Geom
- func (g *Geom) Normalize() *Geom
- func (g *Geom) NumCoordinates() int
- func (g *Geom) NumGeometries() int
- func (g *Geom) NumInteriorRings() int
- func (g *Geom) NumPoints() int
- func (g *Geom) OffsetCurve(width float64, quadsegs int, joinStyle BufJoinStyle, mitreLimit float64) *Geom
- func (g *Geom) Overlaps(other *Geom) bool
- func (g *Geom) Point(n int) *Geom
- func (g *Geom) PointOnSurface() *Geom
- func (g *Geom) PolygonizeFull() (geom, cuts, dangles, invalidRings *Geom)
- func (g *Geom) Precision() float64
- func (g *Geom) Prepare() *PrepGeom
- func (g *Geom) Project(other *Geom) float64
- func (g *Geom) ProjectNormalized(other *Geom) float64
- func (g *Geom) Relate(other *Geom) string
- func (g *Geom) RelateBoundaryNodeRule(other *Geom, bnr RelateBoundaryNodeRule) string
- func (g *Geom) RelatePattern(other *Geom, pat string) bool
- func (g *Geom) Reverse() *Geom
- func (g *Geom) SRID() int
- func (g *Geom) SetPrecision(gridSize float64, flags PrecisionRule) *Geom
- func (g *Geom) SetSRID(srid int) *Geom
- func (g *Geom) SetUserData(userdata uintptr) *Geom
- func (g *Geom) SharedPaths(other *Geom) *Geom
- func (g *Geom) Simplify(tolerance float64) *Geom
- func (g *Geom) Snap(other *Geom, tolerance float64) *Geom
- func (g *Geom) StartPoint() *Geom
- func (g *Geom) String() string
- func (g *Geom) SymDifference(other *Geom) *Geom
- func (g *Geom) SymDifferencePrec(other *Geom, gridSize float64) *Geom
- func (g *Geom) ToEWKBWithSRID() []byte
- func (g *Geom) ToGeoJSON(indent int) string
- func (g *Geom) ToWKB() []byte
- func (g *Geom) ToWKT() string
- func (g *Geom) TopologyPreserveSimplify(tolerance float64) *Geom
- func (g *Geom) Touches(other *Geom) bool
- func (g *Geom) Type() string
- func (g *Geom) TypeID() TypeID
- func (g *Geom) UnaryUnion() *Geom
- func (g *Geom) UnaryUnionPrec(gridSize float64) *Geom
- func (g *Geom) Union(other *Geom) *Geom
- func (g *Geom) UnionPrec(other *Geom, gridSize float64) *Geom
- func (g *Geom) UserData() uintptr
- func (g *Geom) Within(other *Geom) bool
- func (g *Geom) X() float64
- func (g *Geom) Y() float64
- type MakeValidCollapsed
- type MakeValidMethod
- type PrecisionRule
- type PrepGeom
- func (pg *PrepGeom) Contains(g *Geom) bool
- func (pg *PrepGeom) ContainsProperly(g *Geom) bool
- func (pg *PrepGeom) CoveredBy(g *Geom) bool
- func (pg *PrepGeom) Covers(g *Geom) bool
- func (pg *PrepGeom) Crosses(g *Geom) bool
- func (pg *PrepGeom) Destroy()
- func (pg *PrepGeom) Disjoint(g *Geom) bool
- func (pg *PrepGeom) DistanceWithin(g *Geom, dist float64) bool
- func (pg *PrepGeom) Intersects(g *Geom) bool
- func (pg *PrepGeom) Overlaps(g *Geom) bool
- func (pg *PrepGeom) Touches(g *Geom) bool
- func (pg *PrepGeom) Within(g *Geom) bool
- type RelateBoundaryNodeRule
- type STRtree
- func (t *STRtree) Destroy()
- func (t *STRtree) Insert(g *Geom, value any) error
- func (t *STRtree) Iterate(callback func(any))
- func (t *STRtree) Nearest(value any, valueEnvelope *Geom, geomfn func(any) *Geom) any
- func (t *STRtree) Query(g *Geom, callback func(any))
- func (t *STRtree) Remove(g *Geom, value any) bool
- type TypeID
Constants ¶
const ( VersionMajor = C.GEOS_VERSION_MAJOR VersionMinor = C.GEOS_VERSION_MINOR VersionPatch = C.GEOS_VERSION_PATCH )
Version.
Variables ¶
var DefaultContext = NewContext()
DefaultContext is the default context.
Functions ¶
func VersionCompare ¶
VersionCompare returns a negative number if the GEOS version is less than the given major.minor.patch version, zero if it is equal, or a positive number otherwise.
Types ¶
type Box2D ¶
A Box2D is a two-dimensional bounds.
func (*Box2D) ContainsPoint ¶
ContainsPoint returns true if b contains the point at x, y.
func (*Box2D) ContextGeom ¶
ContextGeom returns b as a Geom.
func (*Box2D) Intersects ¶
Intersects returns true if b intersects other.
type BufCapStyle ¶
type BufCapStyle int
const ( BufCapStyleRound BufCapStyle = C.GEOSBUF_CAP_ROUND BufCapStyleFlat BufCapStyle = C.GEOSBUF_CAP_FLAT BufCapStyleSquare BufCapStyle = C.GEOSBUF_CAP_SQUARE )
Buffer cap styles.
type BufJoinStyle ¶
type BufJoinStyle int
const ( BufJoinStyleRound BufJoinStyle = C.GEOSBUF_JOIN_ROUND BufJoinStyleMitre BufJoinStyle = C.GEOSBUF_JOIN_MITRE BufJoinStyleBevel BufJoinStyle = C.GEOSBUF_JOIN_BEVEL )
Buffer join styles.
type BufferParams ¶
type BufferParams struct {
// contains filtered or unexported fields
}
A BufferParams contains parameters for BufferWithParams.
func (*BufferParams) Destroy ¶
func (p *BufferParams) Destroy()
Destroy destroys all resources associated with p.
func (*BufferParams) SetEndCapStyle ¶
func (p *BufferParams) SetEndCapStyle(style BufCapStyle) *BufferParams
SetEndCapStyle sets p's end cap style.
func (*BufferParams) SetJoinStyle ¶
func (p *BufferParams) SetJoinStyle(style BufJoinStyle) *BufferParams
SetJoinStyle sets p's join style.
func (*BufferParams) SetMitreLimit ¶
func (p *BufferParams) SetMitreLimit(mitreLimit float64) *BufferParams
SetMitreLimit sets p's mitre limit.
func (*BufferParams) SetQuadrantSegments ¶
func (p *BufferParams) SetQuadrantSegments(quadSegs int) *BufferParams
SetQuadrantSegments sets the number of segments to stroke each quadrant of circular arcs.
func (*BufferParams) SetSingleSided ¶
func (p *BufferParams) SetSingleSided(singleSided bool) *BufferParams
SetSingleSided sets whether the computed buffer should be single sided.
type Context ¶
A Context is a context.
func NewContext ¶
func NewContext(options ...ContextOption) *Context
NewContext returns a new Context.
func (*Context) NewBufferParams ¶
func (c *Context) NewBufferParams() *BufferParams
NewBufferParams returns a new BufferParams.
func (*Context) NewCollection ¶
NewCollection returns a new collection.
func (*Context) NewCoordSeq ¶
NewCoordSeq returns a new CoordSeq.
func (*Context) NewCoordSeqFromCoords ¶
NewCoordSeqFromCoords returns a new CoordSeq populated with coords.
func (*Context) NewEmptyCollection ¶
NewEmptyCollection returns a new empty collection.
func (*Context) NewEmptyLineString ¶
NewEmptyLineString returns a new empty line string.
func (*Context) NewEmptyPoint ¶
NewEmptyPoint returns a new empty point.
func (*Context) NewEmptyPolygon ¶
NewEmptyPolygon returns a new empty polygon.
func (*Context) NewGeomFromBounds ¶
NewGeomFromBounds returns a new polygon constructed from bounds.
func (*Context) NewGeomFromGeoJSON ¶
NewGeomFromGeoJSON returns a new geometry in JSON format from json.
func (*Context) NewGeomFromWKB ¶
NewGeomFromWKB parses a geometry in WKB format from wkb.
func (*Context) NewGeomFromWKT ¶
NewGeomFromWKT parses a geometry in WKT format from wkt.
func (*Context) NewLineString ¶
NewLineString returns a new line string populated with coords.
func (*Context) NewLinearRing ¶
NewLinearRing returns a new linear ring populated with coords.
func (*Context) NewPointFromXY ¶
NewPointFromXY returns a new point with a x and y.
func (*Context) NewPolygon ¶
NewPolygon returns a new point populated with coordss.
func (*Context) NewSTRtree ¶
NewSTRtree returns a new STRtree.
func (*Context) OrientationIndex ¶
OrientationIndex returns the orientation index from A to B and then to P.
func (*Context) Polygonize ¶
Polygonize returns a set of geometries which contains linework that represents the edges of a planar graph.
func (*Context) PolygonizeValid ¶
PolygonizeValid returns a set of polygons which contains linework that represents the edges of a planar graph.
func (*Context) RelatePatternMatch ¶
RelatePatternMatch returns if two DE9IM patterns are consistent.
type ContextOption ¶
type ContextOption func(*Context)
A ContextOption sets an option on a Context.
func WithGeomFinalizeFunc ¶
func WithGeomFinalizeFunc(geomFinalizeFunc func(*Geom)) ContextOption
WithGeomFinalizeFunc sets a function to be called just before a geometry is finalized. This is typically used to log the geometry to help debug geometry leaks.
func WithSTRtreeFinalizeFunc ¶
func WithSTRtreeFinalizeFunc(strTreeFinalizeFunc func(*STRtree)) ContextOption
WithSTRtreeFinalizeFunc sets a function to be called just before an STRtree is finalized. This is typically used to log the STRtree to help debug STRtree leaks.
type CoordSeq ¶
type CoordSeq struct {
// contains filtered or unexported fields
}
A CoordSeq is a coordinate sequence.
func NewCoordSeqFromCoords ¶
NewCoordSeqFromCoords returns a new CoordSeq populated with coords.
func (*CoordSeq) Destroy ¶
func (s *CoordSeq) Destroy()
Destroy destroys s and all resources associated with s.
func (*CoordSeq) Dimensions ¶
Dimensions returns the dimensions of s.
func (*CoordSeq) SetOrdinate ¶
SetOrdinate sets the idx-th dim coordinate of s to val.
type Geom ¶
type Geom struct {
// contains filtered or unexported fields
}
A Geom is a geometry.
func NewCollection ¶
NewCollection returns a new collection.
func NewEmptyCollection ¶
NewEmptyCollection returns a new empty collection.
func NewEmptyLineString ¶
func NewEmptyLineString() *Geom
NewEmptyLineString returns a new empty line string.
func NewGeomFromBounds ¶
NewGeomFromBounds returns a new polygon populated with bounds.
func NewGeomFromGeoJSON ¶
NewGEOMFromGeoJSON parses a geometry in GeoJSON format from GeoJSON.
func NewGeomFromWKB ¶
NewGeomFromWKB parses a geometry in WKB format from wkb.
func NewGeomFromWKT ¶
NewGeomFromWKT parses a geometry in WKT format from wkt.
func NewLineString ¶
NewLineString returns a new line string populated with coords.
func NewLinearRing ¶
NewLinearRing returns a new linear ring populated with coords.
func NewPointFromXY ¶
NewPointFromXY returns a new point with x and y.
func NewPolygon ¶
NewPolygon returns a new point populated with coordss.
func Polygonize ¶
Polygonize returns a set of geometries which contains linework that represents the edges of a planar graph.
func PolygonizeValid ¶
PolygonizeValid returns a set of polygons which contains linework that represents the edges of a planar graph.
func (*Geom) BufferWithParams ¶
func (g *Geom) BufferWithParams(bufferParams *BufferParams, width float64) *Geom
BufferWithParams returns g buffered with bufferParams.
func (*Geom) BufferWithStyle ¶
func (g *Geom) BufferWithStyle(width float64, quadsegs int, endCapStyle BufCapStyle, joinStyle BufJoinStyle, mitreLimit float64) *Geom
BufferWithStyle returns a buffer using the provided style parameters.
func (*Geom) BuildArea ¶
BuildArea returns the polygonization using all the linework, assuming that rings contained within rings are empty holes, rather than extra PolygonHoleSimplify.
func (*Geom) ClipByBox2D ¶
func (*Geom) ClipByRect ¶
ClipByRect returns g clipped to a rectangular polygon.
func (*Geom) ConcaveHull ¶
ConcaveHull returns the concave hull of g.
func (*Geom) ConcaveHullByLength ¶
ConcaveHullByLength returns the concave hull of g.
func (*Geom) ConstrainedDelaunayTriangulation ¶
ConstrainedDelaunayTriangulation returns the constrained Delaunay triangulation of the vertices of the g.
func (*Geom) CoverageUnion ¶
CoverageUnion returns the union of g for polygonal inputs that are correctly noded and do not overlap.
func (*Geom) Destroy ¶
func (g *Geom) Destroy()
Destroy destroys g and releases all resources it holds.
func (*Geom) Difference ¶
Difference returns the difference between g and other.
func (*Geom) DifferencePrec ¶
DifferencePrec returns the difference between g and other.
func (*Geom) DistanceIndexed ¶
DistanceIndexed returns the distance between g and other, using the indexed facet distance.
func (*Geom) DistanceWithin ¶
DistanceWithin returns whether the distance between g and other is within the given dist.
func (*Geom) EqualsExact ¶
EqualsExact returns true if g equals other exactly.
func (*Geom) ExteriorRing ¶
ExteriorRing returns the exterior ring.
func (*Geom) FrechetDistance ¶
FrechetDistance returns the Fréchet distance between g and other.
func (*Geom) FrechetDistanceDensify ¶
FrechetDistanceDensify returns the Fréchet distance between g and other.
func (*Geom) HausdorffDistance ¶
HausdorffDistance returns the Hausdorff distance between g and other.
func (*Geom) HausdorffDistanceDensify ¶
HausdorffDistanceDensify returns the Hausdorff distance between g and other.
func (*Geom) InteriorRing ¶
InteriorRing returns the nth interior ring.
func (*Geom) Interpolate ¶
Interpolate returns a point distance d from the start of g, which must be a linestring.
func (*Geom) InterpolateNormalized ¶
InterpolateNormalized returns the point that is at proportion from the start.
func (*Geom) Intersection ¶
Intersection returns the intersection of g and other.
func (*Geom) IntersectionPrec ¶
IntersectionPrec returns the intersection of g and other.
func (*Geom) Intersects ¶
Intersects returns true if g intersects other.
func (*Geom) IsValidReason ¶
IsValidReason returns the reason that g is invalid.
func (*Geom) LargestEmptyCircle ¶
LargestEmptyCircle returns the largest empty circle for g, up to a specified tolerance.
func (*Geom) LineMerge ¶
LineMerge returns a set of fully noded LineStrings, removing any cardinality 2 nodes in the linework.
func (*Geom) MakeValidWithParams ¶
func (g *Geom) MakeValidWithParams(method MakeValidMethod, collapse MakeValidCollapsed) *Geom
MakeValidWithParams returns a new valid geometry using the MakeValidMethods and MakeValidCollapsed parameters.
func (*Geom) MaximumInscribedCircle ¶
MaximumInscribedCircle returns the maximum inscribed circle of g up to the the given tolerance.
func (*Geom) MinimumClearance ¶
MinimumClearance returns the minimum clearance of g.
func (*Geom) MinimumClearanceLine ¶
MinimumClearanceLine returns a LineString whose endpoints define the minimum clearance of g.
func (*Geom) MinimumRotatedRectangle ¶
MinimumRotatedRectangle returns the minimum rotated rectangle enclosing g.
func (*Geom) MinimumWidth ¶
MinimumWidth returns a linestring geometry which represents the minimum diameter of g.
func (*Geom) NearestPoints ¶
NearestPoints returns the nearest coordinates of g and other. If the nearest coordinates do not exist (e.g., when either geom is empty), it returns nil.
func (*Geom) Node ¶
Node returns a new geometry in which no lines cross each other, and all touching occurs at endpoints.
func (*Geom) NumCoordinates ¶
NumCoordinates returns the number of coordinates in g.
func (*Geom) NumGeometries ¶
NumGeometries returns the number of geometries in g.
func (*Geom) NumInteriorRings ¶
NumInteriorRings returns the number of interior rings in g.
func (*Geom) OffsetCurve ¶
func (g *Geom) OffsetCurve(width float64, quadsegs int, joinStyle BufJoinStyle, mitreLimit float64) *Geom
OffsetCurve returns the offset curve line(s) of g.
func (*Geom) PointOnSurface ¶
PointOnSurface returns a point that is inside the boundary of a polygonal geometry.
func (*Geom) PolygonizeFull ¶
PolygonizeFull returns a set of geometries which contains linework that represents the edge of a planar graph.
func (*Geom) Project ¶
Project returns the distance of other(a point) projected onto g(a line) from the start of the line.
func (*Geom) ProjectNormalized ¶
ProjectNormalized returns the proportional distance of other(a point) projected onto g(a line) from the start of the line. For example, a point that projects to the middle of a line would be return 0.5.
func (*Geom) RelateBoundaryNodeRule ¶
func (g *Geom) RelateBoundaryNodeRule(other *Geom, bnr RelateBoundaryNodeRule) string
RelateBoundaryNodeRule returns the DE9IM pattern for g and other.
func (*Geom) RelatePattern ¶
RelatePattern returns if the DE9IM pattern for g and other matches pat.
func (*Geom) SetPrecision ¶
func (g *Geom) SetPrecision(gridSize float64, flags PrecisionRule) *Geom
SetPrecision changes the coordinate precision of g.
func (*Geom) SetUserData ¶
SetUserData sets g's userdata and returns g.
func (*Geom) SharedPaths ¶
SharedPaths returns the paths shared between g and other, which must be lineal geometries.
func (*Geom) Snap ¶
Snap returns a geometry with the vertices and segments of g snapped to other within the given tolerance.
func (*Geom) StartPoint ¶
StartPoint returns the first point of a LineString.
func (*Geom) SymDifference ¶
SymDifference returns the symmetric difference between g and other.
func (*Geom) SymDifferencePrec ¶
SymDifferencePrec returns the symmetric difference between g and other.
func (*Geom) ToEWKBWithSRID ¶
ToEWKB returns g in Extended WKB format with its SRID.
func (*Geom) TopologyPreserveSimplify ¶
TopologyPreserveSimplify returns a simplified geometry preserving topology.
func (*Geom) UnaryUnion ¶
UnaryUnion returns the union of all components of a single geometry.
func (*Geom) UnaryUnionPrec ¶
UnaryUnionPrec returns the union of all components of a single geometry.
type MakeValidCollapsed ¶
type MakeValidCollapsed int
const ( MakeValidDiscardCollapsed MakeValidCollapsed = 0 MakeValidKeepCollapsed MakeValidCollapsed = 1 )
MakeValidMethods.
type MakeValidMethod ¶
type MakeValidMethod int
const ( MakeValidLinework MakeValidMethod = C.GEOS_MAKE_VALID_LINEWORK MakeValidStructure MakeValidMethod = C.GEOS_MAKE_VALID_STRUCTURE )
MakeValidMethods.
type PrecisionRule ¶
type PrecisionRule int
const ( PrecisionRuleNone PrecisionRule = 0 PrecisionRuleValidOutput PrecisionRule = C.GEOS_PREC_VALID_OUTPUT PrecisionRuleNoTopo PrecisionRule = C.GEOS_PREC_NO_TOPO PrecisionRulePointwise PrecisionRule = C.GEOS_PREC_NO_TOPO PrecisionRuleKeepCollapsed PrecisionRule = C.GEOS_PREC_KEEP_COLLAPSED )
Precision rules.
type PrepGeom ¶
type PrepGeom struct {
// contains filtered or unexported fields
}
A PrepGeom is a prepared geometry.
func (*PrepGeom) ContainsProperly ¶
ContainsProperly returns if pg contains g properly.
func (*PrepGeom) Destroy ¶
func (pg *PrepGeom) Destroy()
Destroy destroys pg and all resources associated with s.
func (*PrepGeom) DistanceWithin ¶
DistanceWithin returns if pg is within g.
func (*PrepGeom) Intersects ¶
Intersects returns if pg contains g.
type RelateBoundaryNodeRule ¶
type RelateBoundaryNodeRule int
A BoundaryNodeRule is a boundary node rule.
const ( RelateBoundaryNodeRuleMod2 RelateBoundaryNodeRule = C.GEOSRELATE_BNR_MOD2 RelateBoundaryNodeRuleOGC RelateBoundaryNodeRule = C.GEOSRELATE_BNR_OGC RelateBoundaryNodeRuleEndpoint RelateBoundaryNodeRule = C.GEOSRELATE_BNR_ENDPOINT RelateBoundaryNodeRuleMultivalentEndpoint RelateBoundaryNodeRule = C.GEOSRELATE_BNR_MULTIVALENT_ENDPOINT RelateBoundaryNodeRuleMonovalentEndpoint RelateBoundaryNodeRule = C.GEOSRELATE_BNR_MONOVALENT_ENDPOINT )
Boundary node rules.
type STRtree ¶
type STRtree struct {
// contains filtered or unexported fields
}
An STRtree is an R-tree spatial index structure for two dimensional data.
func (*STRtree) Destroy ¶
func (t *STRtree) Destroy()
Destroy frees all resources associated with t.
type TypeID ¶
type TypeID int
A TypeID is a geometry type id.
const ( TypeIDPoint TypeID = C.GEOS_POINT TypeIDLineString TypeID = C.GEOS_LINESTRING TypeIDLinearRing TypeID = C.GEOS_LINEARRING TypeIDPolygon TypeID = C.GEOS_POLYGON TypeIDMultiPoint TypeID = C.GEOS_MULTIPOINT TypeIDMultiLineString TypeID = C.GEOS_MULTILINESTRING TypeIDMultiPolygon TypeID = C.GEOS_MULTIPOLYGON TypeIDGeometryCollection TypeID = C.GEOS_GEOMETRYCOLLECTION )
Geometry type ids.