Versions in this module Expand all Collapse all v0 v0.1.0 Jul 29, 2024 Changes in this version + const PrecisionLevelBigFloat + var EmptyPoint = Point + var ErrInvalidLineString = errors.New("geom: invalid LineString") + var ErrInvalidLineStringM = errors.New("geom: invalid LineStringM") + var ErrInvalidLineStringMS = errors.New("geom: invalid LineStringMS") + var ErrInvalidLineStringS = errors.New("geom: invalid LineStringS") + var ErrInvalidLineStringZ = errors.New("geom: invalid LineStringZ") + var ErrInvalidLineStringZM = errors.New("geom: invalid LineStringZM") + var ErrInvalidLineStringZMS = errors.New("geom: invalid LineStringZMS") + var ErrInvalidLineStringZS = errors.New("geom: invalid LineStringZS") + var ErrInvalidLinearRing = errors.New("geom: invalid LinearRing") + var ErrInvalidLinearRingM = errors.New("geom: invalid LinearRingM") + var ErrInvalidLinearRingMS = errors.New("geom: invalid LinearRingMS") + var ErrInvalidLinearRingS = errors.New("geom: invalid LinearRingS") + var ErrInvalidLinearRingZ = errors.New("geom: invalid LinearRingZ") + var ErrInvalidLinearRingZM = errors.New("geom: invalid LinearRingZM") + var ErrInvalidLinearRingZMS = errors.New("geom: invalid LinearRingZMS") + var ErrInvalidLinearRingZS = errors.New("geom: invalid LinearRingZS") + var ErrInvalidPolygon = errors.New("geom: invalid Polygon") + var ErrInvalidPolygonM = errors.New("geom: invalid PolygonM") + var ErrInvalidPolygonMS = errors.New("geom: invalid PolygonMS") + var ErrInvalidPolygonS = errors.New("geom: invalid PolygonS") + var ErrInvalidPolygonZ = errors.New("geom: invalid PolygonZ") + var ErrInvalidPolygonZM = errors.New("geom: invalid PolygonZM") + var ErrInvalidPolygonZMS = errors.New("geom: invalid PolygonZMS") + var ErrInvalidPolygonZS = errors.New("geom: invalid PolygonZS") + var ErrNilCollection = errors.New("geom: nil collection") + var ErrNilLineString = errors.New("geom: nil LineString") + var ErrNilLineStringM = errors.New("geom: nil LineStringM") + var ErrNilLineStringMS = errors.New("geom: nil LineStringMS") + var ErrNilLineStringS = errors.New("geom: nil LineStringS") + var ErrNilLineStringZ = errors.New("geom: nil LineStringZ") + var ErrNilLineStringZM = errors.New("geom: nil LineStringZM") + var ErrNilLineStringZMS = errors.New("geom: nil LineStringZMS") + var ErrNilLineStringZS = errors.New("geom: nil LineStringZS") + var ErrNilMultiLineString = errors.New("geom: nil MultiLineString") + var ErrNilMultiLineStringM = errors.New("geom: nil MultiLineStringM") + var ErrNilMultiLineStringMS = errors.New("geom: nil MultiLineStringMS") + var ErrNilMultiLineStringS = errors.New("geom: nil MultiLineStringS") + var ErrNilMultiLineStringZ = errors.New("geom: nil MultiLineStringZ") + var ErrNilMultiLineStringZM = errors.New("geom: nil MultiLineStringZM") + var ErrNilMultiLineStringZMS = errors.New("geom: nil MultiLineStringZMS") + var ErrNilMultiLineStringZS = errors.New("geom: nil MultiLineStringZS") + var ErrNilMultiPoint = errors.New("geom: nil MultiPoint") + var ErrNilMultiPointM = errors.New("geom: nil MultiPointM") + var ErrNilMultiPointMS = errors.New("geom: nil MultiPointMS") + var ErrNilMultiPointS = errors.New("geom: nil MultiPointS") + var ErrNilMultiPointZ = errors.New("geom: nil MultiPointZ") + var ErrNilMultiPointZM = errors.New("geom: nil MultiPointZM") + var ErrNilMultiPointZMS = errors.New("geom: nil MultiPointZMS") + var ErrNilMultiPointZS = errors.New("geom: nil MultiPointZS") + var ErrNilMultiPolygon = errors.New("geom: nil MultiPolygon") + var ErrNilPoint = errors.New("geom: nil Point") + var ErrNilPointM = errors.New("geom: nil PointM") + var ErrNilPointMS = errors.New("geom: nil PointMS") + var ErrNilPointS = errors.New("geom: nil PointS") + var ErrNilPointZ = errors.New("geom: nil PointZ") + var ErrNilPointZM = errors.New("geom: nil PointZM") + var ErrNilPointZMS = errors.New("geom: nil PointZMS") + var ErrNilPointZS = errors.New("geom: nil PointZS") + var ErrNilPolygon = errors.New("geom: nil Polygon") + var ErrNilPolygonM = errors.New("geom: nil PolygonM") + var ErrNilPolygonMS = errors.New("geom: nil PolygonMS") + var ErrNilPolygonS = errors.New("geom: nil PolygonS") + var ErrNilPolygonZ = errors.New("geom: nil PolygonZ") + var ErrNilPolygonZM = errors.New("geom: nil PolygonZM") + var ErrNilPolygonZMS = errors.New("geom: nil PolygonZMS") + var ErrNilPolygonZS = errors.New("geom: nil PolygonZS") + var ErrPointsAreCoLinear = errors.New("given points are colinear") + func IsColinear(a, b, c [2]float64) bool + func IsNil(a interface{}) bool + func RoundToPrec(v float64, prec int) float64 + type Circle struct + Center [2]float64 + Radius float64 + func CircleFromPoints(a, b, c [2]float64) (Circle, error) + func (c Circle) AsLineString(k uint) LineString + func (c Circle) AsPoints(k uint) []Point + func (c Circle) AsSegments(k uint) []Line + func (c Circle) ContainsPoint(pt [2]float64) bool + type ClockwiseFunc func(...[2]float64) bool + type Collection []Geometry + func (c *Collection) SetGeometries(input []Geometry) (err error) + func (c Collection) Geometries() []Geometry + type CollectionSetter interface + SetGeometries func([]Geometry) error + type Collectioner interface + Geometries func() []Geometry + type ErrUnknownGeometry struct + Geom Geometry + func (e ErrUnknownGeometry) Error() string + type Extent [4]float64 + func NewExtent(points ...[2]float64) *Extent + func NewExtentFromGeometry(g Geometry) (*Extent, error) + func NewExtentFromPoints(points ...Point) *Extent + func (e *Extent) Add(extent MinMaxer) + func (e *Extent) AddGeometry(g Geometry) error + func (e *Extent) AddPointers(pts ...Pointer) + func (e *Extent) AddPoints(points ...[2]float64) + func (e *Extent) Area() float64 + func (e *Extent) AsPolygon() Polygon + func (e *Extent) Clone() *Extent + func (e *Extent) Contains(ne MinMaxer) bool + func (e *Extent) ContainsGeom(g Geometry) (bool, error) + func (e *Extent) ContainsLine(l [2][2]float64) bool + func (e *Extent) ContainsPoint(pt [2]float64) bool + func (e *Extent) Edges(cwfn ClockwiseFunc) [][2][2]float64 + func (e *Extent) ExpandBy(s float64) *Extent + func (e *Extent) Extent() [4]float64 + func (e *Extent) Intersect(ne *Extent) (*Extent, bool) + func (e *Extent) IsUniverse() bool + func (e *Extent) Max() Point + func (e *Extent) MaxX() float64 + func (e *Extent) MaxY() float64 + func (e *Extent) Min() Point + func (e *Extent) MinX() float64 + func (e *Extent) MinY() float64 + func (e *Extent) ScaleBy(s float64) *Extent + func (e *Extent) Vertices() [][2]float64 + func (e *Extent) XSpan() float64 + func (e *Extent) YSpan() float64 + type Extenter interface + Extent func() (extent [4]float64) + type Geometry interface + func ApplyToPoints(geometry Geometry, f func(coords ...float64) ([]float64, error)) (Geometry, error) + func Clone(geometry Geometry) (Geometry, error) + type Line [2][2]float64 + func ExtractLines(g Geometry) (lines []Line, err error) + func (l Line) ContainsPoint(pt [2]float64) bool + func (l Line) ContainsPointBigFloat(pt [2]*big.Float) bool + func (l Line) IsHorizontal() bool + func (l Line) IsVertical() bool + func (l Line) LengthSquared() float64 + func (l Line) Point1() *Point + func (l Line) Point2() *Point + func (l Line) Vertices() [][2]float64 + type LineM [2][3]float64 + func (lm LineM) PointM1() *PointM + func (lm LineM) PointM2() *PointM + type LineString [][2]float64 + func (ls *LineString) SetVertices(input [][2]float64) (err error) + func (ls LineString) AsSegments() (segs []Line, err error) + func (ls LineString) IsRing() bool + func (ls LineString) Vertices() [][2]float64 + type LineStringM [][3]float64 + func (lsm *LineStringM) SetVertices(input [][3]float64) (err error) + func (lsm LineStringM) LineString() LineString + func (lsm LineStringM) Vertices() [][3]float64 + type LineStringMS struct + Lsm LineStringM + Srid uint32 + func (lsms *LineStringMS) SetSRID(srid uint32, lsm LineStringM) (err error) + func (lsms LineStringMS) LineStringM() LineStringM + func (lsms LineStringMS) Vertices() struct{ ... } + type LineStringMSSetter interface + SetSRID func(srid uint32, lsm LineStringM) error + type LineStringMSer interface + Vertices func() struct{ ... } + type LineStringMSetter interface + SetVertices func([][3]float64) error + type LineStringMer interface + Vertices func() [][3]float64 + type LineStringS struct + Ls LineString + Srid uint32 + func (lss *LineStringS) SetSRID(srid uint32, ls LineString) (err error) + func (lss LineStringS) LineString() LineString + func (lss LineStringS) Vertices() struct{ ... } + type LineStringSSetter interface + SetSRID func(srid uint32, ls LineString) error + type LineStringSer interface + Vertices func() struct{ ... } + type LineStringSetter interface + SetVertices func([][2]float64) error + type LineStringZ [][3]float64 + func (lsz *LineStringZ) SetVertices(input [][3]float64) (err error) + func (lsz LineStringZ) LineString() LineString + func (lsz LineStringZ) Vertices() [][3]float64 + type LineStringZM [][4]float64 + func (lszm *LineStringZM) SetVertices(input [][4]float64) (err error) + func (lszm LineStringZM) LineString() LineString + func (lszm LineStringZM) Vertices() [][4]float64 + type LineStringZMS struct + Lszm LineStringZM + Srid uint32 + func (lszms *LineStringZMS) SetSRID(srid uint32, lszm LineStringZM) (err error) + func (lszms LineStringZMS) LineStringZM() LineStringZM + func (lszms LineStringZMS) Vertices() struct{ ... } + type LineStringZMSSetter interface + SetSRID func(srid uint32, lszm LineStringZM) error + type LineStringZMSer interface + Vertices func() struct{ ... } + type LineStringZMSetter interface + SetVertices func([][4]float64) error + type LineStringZMer interface + Vertices func() [][4]float64 + type LineStringZS struct + Lsz LineStringZ + Srid uint32 + func (lszs *LineStringZS) SetSRID(srid uint32, lsz LineStringZ) (err error) + func (lszs LineStringZS) LineStringZ() LineStringZ + func (lszs LineStringZS) Vertices() struct{ ... } + type LineStringZSSetter interface + SetSRID func(srid uint32, lsz LineStringZ) error + type LineStringZSer interface + Vertices func() struct{ ... } + type LineStringZSetter interface + SetVertices func([][3]float64) error + type LineStringZer interface + Vertices func() [][3]float64 + type LineStringer interface + Vertices func() [][2]float64 + type LineZ [2][3]float64 + func (lz LineZ) PointZ1() *PointZ + func (lz LineZ) PointZ2() *PointZ + type LineZM [2][4]float64 + func (lzm LineZM) PointZM1() *PointZM + func (lzm LineZM) PointZM2() *PointZM + type MinMaxer interface + MaxX func() float64 + MaxY func() float64 + MinX func() float64 + MinY func() float64 + type MultiLineString [][][2]float64 + func (mls *MultiLineString) SetLineStrings(input [][][2]float64) (err error) + func (mls MultiLineString) AsSegments() (segs [][]Line, err error) + func (mls MultiLineString) LineStrings() [][][2]float64 + type MultiLineStringM [][][3]float64 + func (mlsm *MultiLineStringM) SetLineStringMs(input [][][3]float64) (err error) + func (mlsm MultiLineStringM) AsLineStringMs() (segs []LineStringM, err error) + func (mlsm MultiLineStringM) LineStringMs() [][][3]float64 + type MultiLineStringMS struct + Mlsm MultiLineStringM + Srid uint32 + func (mlsms *MultiLineStringMS) SetSRID(srid uint32, mlsm MultiLineStringM) (err error) + func (mlsms MultiLineStringMS) MultiLineStringM() MultiLineStringM + func (mlsms MultiLineStringMS) MultiLineStringMs() struct{ ... } + type MultiLineStringMSSetter interface + SetSRID func(srid uint32, mlsm MultiLineStringM) error + type MultiLineStringMSer interface + MultiLineStringMs func() struct{ ... } + type MultiLineStringMSetter interface + SetLineStringMs func([][][3]float64) error + type MultiLineStringMer interface + LineStringMs func() [][][3]float64 + type MultiLineStringS struct + Mls MultiLineString + Srid uint32 + func (mlss *MultiLineStringS) SetSRID(srid uint32, mls MultiLineString) (err error) + func (mlss MultiLineStringS) MultiLineString() MultiLineString + func (mlss MultiLineStringS) MultiLineStrings() struct{ ... } + type MultiLineStringSSetter interface + SetSRID func(srid uint32, mls MultiLineString) error + type MultiLineStringSer interface + MultiLineStrings func() struct{ ... } + type MultiLineStringSetter interface + SetLineStrings func([][][2]float64) error + type MultiLineStringZ [][][3]float64 + func (mlsz *MultiLineStringZ) SetLineStringZs(input [][][3]float64) (err error) + func (mlsz MultiLineStringZ) AsLineStringZs() (segs []LineStringZ, err error) + func (mlsz MultiLineStringZ) LineStringZs() [][][3]float64 + type MultiLineStringZM [][][4]float64 + func (mlszm *MultiLineStringZM) SetLineStringZMs(input [][][4]float64) (err error) + func (mlszm MultiLineStringZM) AsLineStringZMs() (segs []LineStringZM, err error) + func (mlszm MultiLineStringZM) LineStringZMs() [][][4]float64 + type MultiLineStringZMS struct + Mlszm MultiLineStringZM + Srid uint32 + func (mlszms *MultiLineStringZMS) SetSRID(srid uint32, mlszm MultiLineStringZM) (err error) + func (mlszms MultiLineStringZMS) MultiLineStringZM() MultiLineStringZM + func (mlszms MultiLineStringZMS) MultiLineStringZMs() struct{ ... } + type MultiLineStringZMSSetter interface + SetSRID func(srid uint32, mlszm MultiLineStringZM) error + type MultiLineStringZMSer interface + MultiLineStringZMs func() struct{ ... } + type MultiLineStringZMSetter interface + SetLineStringZMs func([][][4]float64) error + type MultiLineStringZMer interface + LineStringZMs func() [][][4]float64 + type MultiLineStringZS struct + Mlsz MultiLineStringZ + Srid uint32 + func (mlszs *MultiLineStringZS) SetSRID(srid uint32, mlsz MultiLineStringZ) (err error) + func (mlszs MultiLineStringZS) MultiLineStringZ() MultiLineStringZ + func (mlszs MultiLineStringZS) MultiLineStringZs() struct{ ... } + type MultiLineStringZSSetter interface + SetSRID func(srid uint32, mlsz MultiLineStringZ) error + type MultiLineStringZSer interface + MultiLineStringZs func() struct{ ... } + type MultiLineStringZSetter interface + SetLineStringZs func([][][3]float64) error + type MultiLineStringZer interface + LineStringZs func() [][][3]float64 + type MultiLineStringer interface + LineStrings func() [][][2]float64 + type MultiPoint [][2]float64 + func (mp *MultiPoint) SetPoints(input [][2]float64) (err error) + func (mp MultiPoint) Points() [][2]float64 + type MultiPointM [][3]float64 + func (mpm *MultiPointM) SetPoints(input [][3]float64) (err error) + func (mpm MultiPointM) MultiPoint() MultiPoint + func (mpm MultiPointM) Points() [][3]float64 + type MultiPointMS struct + Mpm MultiPointM + Srid uint32 + func (mpms *MultiPointMS) SetSRID(srid uint32, mpm MultiPointM) (err error) + func (mpms MultiPointMS) MultiPointM() MultiPointM + func (mpms MultiPointMS) Points() struct{ ... } + type MultiPointMSSetter interface + SetSRID func(srid uint32, mpz MultiPointM) error + type MultiPointMSer interface + Points func() struct{ ... } + type MultiPointMSetter interface + SetPoints func([][3]float64) error + type MultiPointMer interface + Points func() [][3]float64 + type MultiPointS struct + Mp MultiPoint + Srid uint32 + func (mps *MultiPointS) SetSRID(srid uint32, mp MultiPoint) (err error) + func (mps MultiPointS) MultiPoint() MultiPoint + func (mps MultiPointS) Points() struct{ ... } + type MultiPointSSetter interface + SetSRID func(srid uint32, mp MultiPoint) error + type MultiPointSer interface + Points func() struct{ ... } + type MultiPointSetter interface + SetPoints func([][2]float64) error + type MultiPointZ [][3]float64 + func (mpz *MultiPointZ) SetPoints(input [][3]float64) (err error) + func (mpz MultiPointZ) MultiPoint() MultiPoint + func (mpz MultiPointZ) Points() [][3]float64 + type MultiPointZM [][4]float64 + func (mpzm *MultiPointZM) SetPoints(input [][4]float64) (err error) + func (mpzm MultiPointZM) MultiPoint() MultiPoint + func (mpzm MultiPointZM) Points() [][4]float64 + type MultiPointZMS struct + Mpzm MultiPointZM + Srid uint32 + func (mpzms *MultiPointZMS) SetSRID(srid uint32, mpzm MultiPointZM) (err error) + func (mpzms MultiPointZMS) MultiPointZM() MultiPointZM + func (mpzms MultiPointZMS) Points() struct{ ... } + type MultiPointZMSSetter interface + SetSRID func(srid uint32, mpzm MultiPointZM) error + type MultiPointZMSer interface + Points func() struct{ ... } + type MultiPointZMSetter interface + SetPoints func([][4]float64) error + type MultiPointZMer interface + Points func() [][4]float64 + type MultiPointZS struct + Mpz MultiPointZ + Srid uint32 + func (mps MultiPointZS) MultiPointZ() MultiPointZ + func (mpzs *MultiPointZS) SetSRID(srid uint32, mpz MultiPointZ) (err error) + func (mpzs MultiPointZS) Points() struct{ ... } + type MultiPointZSSetter interface + SetSRID func(srid uint32, mpz MultiPointZ) error + type MultiPointZSer interface + Points func() struct{ ... } + type MultiPointZSetter interface + SetPoints func([][3]float64) error + type MultiPointZer interface + Points func() [][3]float64 + type MultiPointer interface + Points func() [][2]float64 + type MultiPolygon [][][][2]float64 + func (mp *MultiPolygon) SetPolygons(input [][][][2]float64) (err error) + func (mp MultiPolygon) AsSegments() (segs [][][]Line, err error) + func (mp MultiPolygon) Polygons() [][][][2]float64 + type MultiPolygonSetter interface + SetPolygons func([][][][2]float64) error + type MultiPolygoner interface + Polygons func() [][][][2]float64 + type Point [2]float64 + func GetCoordinates(g Geometry) (pts []Point, err error) + func (p *Point) SetXY(xy [2]float64) (err error) + func (p Point) Area() float64 + func (p Point) CrossProduct(pt Point) float64 + func (p Point) Lat() float64 + func (p Point) Lon() float64 + func (p Point) Magnitude() float64 + func (p Point) MaxX() float64 + func (p Point) MaxY() float64 + func (p Point) MinX() float64 + func (p Point) MinY() float64 + func (p Point) Multiply(pt Point) Point + func (p Point) Subtract(pt Point) Point + func (p Point) WithinCircle(a, b, c Point) bool + func (p Point) X() float64 + func (p Point) XY() [2]float64 + func (p Point) Y() float64 + type PointM [3]float64 + func (p *PointM) SetXYM(xym [3]float64) (err error) + func (p PointM) M() float64 + func (p PointM) XY() [2]float64 + func (p PointM) XYM() [3]float64 + type PointMS struct + Srid uint32 + Xym PointM + func (p *PointMS) SetXYMS(srid uint32, xym PointM) (err error) + func (p PointMS) S() uint32 + func (p PointMS) XYM() PointM + func (p PointMS) XYMS() struct{ ... } + type PointMSSetter interface + SetXYMS func(srid uint32, xym PointM) error + type PointMSer interface + XYMS func() struct{ ... } + type PointMSetter interface + SetXYM func([3]float64) error + type PointMer interface + XYM func() [3]float64 + type PointS struct + Srid uint32 + Xy Point + func (p *PointS) SetXYS(srid uint32, xy Point) (err error) + func (p PointS) S() uint32 + func (p PointS) XY() Point + func (p PointS) XYS() struct{ ... } + type PointSSetter interface + SetXYS func(srid uint32, xy Point) error + type PointSer interface + XYS func() struct{ ... } + type PointSetter interface + SetXY func([2]float64) error + type PointZ [3]float64 + func (p *PointZ) SetXYZ(xyz [3]float64) (err error) + func (p PointZ) Magnitude() float64 + func (p PointZ) XY() [2]float64 + func (p PointZ) XYZ() [3]float64 + type PointZM [4]float64 + func (p *PointZM) SetXYZM(xyzm [4]float64) (err error) + func (p PointZM) M() float64 + func (p PointZM) XYZ() [3]float64 + func (p PointZM) XYZM() [4]float64 + type PointZMS struct + Srid uint32 + Xyzm PointZM + func (p *PointZMS) SetXYZMS(srid uint32, xyzm PointZM) (err error) + func (p PointZMS) S() uint32 + func (p PointZMS) XYZM() PointZM + func (p PointZMS) XYZMS() struct{ ... } + type PointZMSSetter interface + SetXYZMS func(srid uint32, xyzm PointZM) error + type PointZMSer interface + XYZMS func() struct{ ... } + type PointZMSetter interface + SetXYZM func([4]float64) error + type PointZMer interface + XYZM func() [4]float64 + type PointZS struct + Srid uint32 + Xyz PointZ + func (p *PointZS) SetXYZS(srid uint32, xyz PointZ) (err error) + func (p PointZS) S() uint32 + func (p PointZS) XYZ() PointZ + func (p PointZS) XYZS() struct{ ... } + type PointZSSetter interface + SetXYZS func(srid uint32, xyz PointZ) error + type PointZSer interface + XYZS func() struct{ ... } + type PointZSetter interface + SetXYZ func([3]float64) error + type PointZer interface + XYZ func() [3]float64 + type Pointer interface + XY func() [2]float64 + type Polygon [][][2]float64 + func (p *Polygon) SetLinearRings(input [][][2]float64) (err error) + func (p Polygon) AsSegments() (segs [][]Line, err error) + func (p Polygon) LinearRings() [][][2]float64 + type PolygonM [][][3]float64 + func (p *PolygonM) SetLinearRings(input [][][3]float64) (err error) + func (p PolygonM) AsSegments() (segs [][]LineM, err error) + func (p PolygonM) LinearRings() [][][3]float64 + type PolygonMS struct + Polm PolygonM + Srid uint32 + func (p *PolygonMS) SetLinearRings(srid uint32, polm PolygonM) (err error) + func (p PolygonMS) AsSegments() (segs [][]LineM, srid uint32, err error) + func (p PolygonMS) LinearRings() struct{ ... } + type PolygonMSSetter interface + AsSegments func() ([][]LineM, uint32, error) + SetLinearRings func(srid uint32, polm PolygonM) error + type PolygonMSer interface + LinearRings func() struct{ ... } + type PolygonMSetter interface + AsSegments func() ([][]LineM, error) + SetLinearRings func([][][3]float64) error + type PolygonMer interface + LinearRings func() [][][3]float64 + type PolygonS struct + Pol Polygon + Srid uint32 + func (p *PolygonS) SetLinearRings(srid uint32, pol Polygon) (err error) + func (p PolygonS) AsSegments() (segs [][]Line, srid uint32, err error) + func (p PolygonS) LinearRings() struct{ ... } + type PolygonSSetter interface + AsSegments func() ([][]Line, uint32, error) + SetLinearRings func(srid uint32, pol Polygon) error + type PolygonSer interface + LinearRings func() struct{ ... } + type PolygonSetter interface + AsSegments func() ([][]Line, error) + SetLinearRings func([][][2]float64) error + type PolygonZ [][][3]float64 + func (p *PolygonZ) SetLinearRings(input [][][3]float64) (err error) + func (p PolygonZ) AsSegments() (segs [][]LineZ, err error) + func (p PolygonZ) LinearRings() [][][3]float64 + type PolygonZM [][][4]float64 + func (p *PolygonZM) SetLinearRings(input [][][4]float64) (err error) + func (p PolygonZM) AsSegments() (segs [][]LineZM, err error) + func (p PolygonZM) LinearRings() [][][4]float64 + type PolygonZMS struct + Polzm PolygonZM + Srid uint32 + func (p *PolygonZMS) SetLinearRings(srid uint32, polzm PolygonZM) (err error) + func (p PolygonZMS) AsSegments() (segs [][]LineZM, srid uint32, err error) + func (p PolygonZMS) LinearRings() struct{ ... } + type PolygonZMSSetter interface + AsSegments func() ([][]LineZM, uint32, error) + SetLinearRings func(srid uint32, polzm PolygonZM) error + type PolygonZMSer interface + LinearRings func() struct{ ... } + type PolygonZMSetter interface + AsSegments func() ([][]LineZM, error) + SetLinearRings func([][][4]float64) error + type PolygonZMer interface + LinearRings func() [][][4]float64 + type PolygonZS struct + Polz PolygonZ + Srid uint32 + func (p *PolygonZS) SetLinearRings(srid uint32, polz PolygonZ) (err error) + func (p PolygonZS) AsSegments() (segs [][]LineZ, srid uint32, err error) + func (p PolygonZS) LinearRings() struct{ ... } + type PolygonZSSetter interface + AsSegments func() ([][]LineZ, uint32, error) + SetLinearRings func(srid uint32, polz PolygonZ) error + type PolygonZSer interface + LinearRings func() struct{ ... } + type PolygonZSetter interface + AsSegments func() ([][]LineZ, error) + SetLinearRings func([][][3]float64) error + type PolygonZer interface + LinearRings func() [][][3]float64 + type Polygoner interface + LinearRings func() [][][2]float64 + type PtMinMaxer interface + Max func() Point + Min func() Point + type Triangle [3][2]float64 + func NewTriangleContaining(pts ...Point) Triangle + func NewTriangleContainingPoints(pts ...[2]float64) Triangle + func NewTriangleForExtent(ext *Extent, buff float64) (Triangle, error) + func NewTriangleFromPolygon(py [][][2]float64) Triangle + func (t Triangle) Area() float64 + func (t Triangle) Center() (pt [2]float64) + func (t Triangle) LinearRings() [][][2]float64 + func (t Triangle) ThirdPoint(p1, p2 [2]float64) [2]float64