Documentation
¶
Overview ¶
Package geom 定义了有关地理信息有关的几何类型
Index ¶
- type Bounds
- func (b *Bounds) Clone() *Bounds
- func (b *Bounds) Extend(g T) *Bounds
- func (b *Bounds) IsEmpty() bool
- func (b *Bounds) Layout() Layout
- func (b *Bounds) Max(dim int) float64
- func (b *Bounds) Min(dim int) float64
- func (b *Bounds) Overlaps(layout Layout, b2 *Bounds) bool
- func (b *Bounds) OverlapsPoint(layout Layout, point Coord) bool
- func (b *Bounds) Set(args ...float64) *Bounds
- func (b *Bounds) SetCoords(min, max Coord) *Bounds
- type Coord
- type ErrLayoutMismatch
- type ErrStrideMismatch
- type ErrUnsupportedLayout
- type ErrUnsupportedType
- type GeometryCollection
- func (gc *GeometryCollection) Bounds() *Bounds
- func (gc *GeometryCollection) Empty() bool
- func (*GeometryCollection) Ends() []int
- func (*GeometryCollection) Endss() [][]int
- func (*GeometryCollection) FlatCoords() []float64
- func (gc *GeometryCollection) Geom(i int) T
- func (gc *GeometryCollection) Geoms() []T
- func (gc *GeometryCollection) Layout() Layout
- func (gc *GeometryCollection) MustPush(gs ...T) *GeometryCollection
- func (gc *GeometryCollection) NumGeoms() int
- func (gc *GeometryCollection) Push(gs ...T) error
- func (gc *GeometryCollection) SRID() int
- func (gc *GeometryCollection) SetSRID(srid int) *GeometryCollection
- func (gc *GeometryCollection) Stride() int
- type Layout
- type LineString
- func (ls *LineString) Area() float64
- func (ls *LineString) Clone() *LineString
- func (g *LineString) Coord(i int) Coord
- func (g *LineString) Coords() []Coord
- func (ls *LineString) Empty() bool
- func (ls *LineString) Interpolate(val float64, dim int) (int, float64)
- func (ls *LineString) Length() float64
- func (ls *LineString) MustSetCoords(coords []Coord) *LineString
- func (g *LineString) NumCoords() int
- func (ls *LineString) Points() *MultiPoint
- func (ls *LineString) SetCoords(coords []Coord) (*LineString, error)
- func (ls *LineString) SetSRID(srid int) *LineString
- func (ls *LineString) SubLineString(start, stop int) *LineString
- func (ls *LineString) Swap(ls2 *LineString)
- type LinearRing
- func (lr *LinearRing) Area() float64
- func (lr *LinearRing) Clone() *LinearRing
- func (g *LinearRing) Coord(i int) Coord
- func (g *LinearRing) Coords() []Coord
- func (lr *LinearRing) Empty() bool
- func (lr *LinearRing) Length() float64
- func (lr *LinearRing) MustSetCoords(coords []Coord) *LinearRing
- func (g *LinearRing) NumCoords() int
- func (lr *LinearRing) SetCoords(coords []Coord) (*LinearRing, error)
- func (lr *LinearRing) SetSRID(srid int) *LinearRing
- func (lr *LinearRing) Swap(lr2 *LinearRing)
- type MultiLineString
- func (mls *MultiLineString) Area() float64
- func (mls *MultiLineString) Clone() *MultiLineString
- func (g *MultiLineString) Coords() [][]Coord
- func (mls *MultiLineString) Empty() bool
- func (g *MultiLineString) Ends() []int
- func (mls *MultiLineString) Length() float64
- func (mls *MultiLineString) LineString(i int) *LineString
- func (mls *MultiLineString) MustSetCoords(coords [][]Coord) *MultiLineString
- func (mls *MultiLineString) NumLineStrings() int
- func (mls *MultiLineString) Push(ls *LineString) error
- func (mls *MultiLineString) SetCoords(coords [][]Coord) (*MultiLineString, error)
- func (mls *MultiLineString) SetSRID(srid int) *MultiLineString
- func (mls *MultiLineString) Swap(mls2 *MultiLineString)
- type MultiPoint
- func (mp *MultiPoint) Area() float64
- func (mp *MultiPoint) Clone() *MultiPoint
- func (g *MultiPoint) Coord(i int) Coord
- func (g *MultiPoint) Coords() []Coord
- func (mp *MultiPoint) Empty() bool
- func (mp *MultiPoint) Length() float64
- func (mp *MultiPoint) MustSetCoords(coords []Coord) *MultiPoint
- func (g *MultiPoint) NumCoords() int
- func (mp *MultiPoint) NumPoints() int
- func (mp *MultiPoint) Point(i int) *Point
- func (mp *MultiPoint) Push(p *Point) error
- func (mp *MultiPoint) SetCoords(coords []Coord) (*MultiPoint, error)
- func (mp *MultiPoint) SetSRID(srid int) *MultiPoint
- func (mp *MultiPoint) Swap(mp2 *MultiPoint)
- type MultiPolygon
- func (mp *MultiPolygon) Area() float64
- func (mp *MultiPolygon) Clone() *MultiPolygon
- func (g *MultiPolygon) Coords() [][][]Coord
- func (mp *MultiPolygon) Empty() bool
- func (g *MultiPolygon) Endss() [][]int
- func (mp *MultiPolygon) Length() float64
- func (mp *MultiPolygon) MustSetCoords(coords [][][]Coord) *MultiPolygon
- func (mp *MultiPolygon) NumPolygons() int
- func (mp *MultiPolygon) Polygon(i int) *Polygon
- func (mp *MultiPolygon) Push(p *Polygon) error
- func (mp *MultiPolygon) SetCoords(coords [][][]Coord) (*MultiPolygon, error)
- func (mp *MultiPolygon) SetSRID(srid int) *MultiPolygon
- func (mp *MultiPolygon) Swap(mp2 *MultiPolygon)
- type Point
- func (p *Point) Area() float64
- func (g *Point) Bounds() *Bounds
- func (p *Point) Clone() *Point
- func (g *Point) Coords() Coord
- func (p *Point) Empty() bool
- func (g *Point) Ends() []int
- func (g *Point) Endss() [][]int
- func (g *Point) FlatCoords() []float64
- func (g *Point) Layout() Layout
- func (p *Point) Length() float64
- func (p *Point) M() float64
- func (p *Point) MustSetCoords(coords Coord) *Point
- func (g *Point) NumCoords() int
- func (g *Point) Reserve(n int)
- func (g *Point) SRID() int
- func (p *Point) SetCoords(coords Coord) (*Point, error)
- func (p *Point) SetSRID(srid int) *Point
- func (g *Point) Stride() int
- func (p *Point) Swap(p2 *Point)
- func (p *Point) X() float64
- func (p *Point) Y() float64
- func (p *Point) Z() float64
- type Polygon
- func (p *Polygon) Area() float64
- func (p *Polygon) Clone() *Polygon
- func (g *Polygon) Coords() [][]Coord
- func (p *Polygon) Empty() bool
- func (g *Polygon) Ends() []int
- func (p *Polygon) Length() float64
- func (p *Polygon) LinearRing(i int) *LinearRing
- func (p *Polygon) MustSetCoords(coords [][]Coord) *Polygon
- func (p *Polygon) NumLinearRings() int
- func (p *Polygon) Push(lr *LinearRing) error
- func (p *Polygon) SetCoords(coords [][]Coord) (*Polygon, error)
- func (p *Polygon) SetSRID(srid int) *Polygon
- func (p *Polygon) Swap(p2 *Polygon)
- type T
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bounds ¶
type Bounds struct {
// contains filtered or unexported fields
}
A Bounds 表示多维边界框
func (*Bounds) OverlapsPoint ¶
OverlapsPoint方法 点是否在边界框上(点在边界的边界内或边界上)
type Coord ¶
type Coord []float64 //坐标
一个Coord 表示一个坐标
func (Coord) Clone ¶
* *------------------------------ * Coord(坐标)相关的方法 *---------------------------------
Clone 深度拷贝Coord
type ErrLayoutMismatch ¶
ErrLayoutMismatch将会被返回,但图层的几何类型不正确时 不能合并
func (ErrLayoutMismatch) Error ¶
func (e ErrLayoutMismatch) Error() string
type ErrStrideMismatch ¶
ErrStrideMismatch将会被返回当视图的维数与预期不符时
func (ErrStrideMismatch) Error ¶
func (e ErrStrideMismatch) Error() string
type ErrUnsupportedLayout ¶
type ErrUnsupportedLayout Layout
当请求的图层类型不支持时会返回ErrUnsupportedLayout
func (ErrUnsupportedLayout) Error ¶
func (e ErrUnsupportedLayout) Error() string
type ErrUnsupportedType ¶
type ErrUnsupportedType struct {
Value interface{}
}
当请求的类型不支持时将会返回 ErrUnsupportedType
func (ErrUnsupportedType) Error ¶
func (e ErrUnsupportedType) Error() string
type GeometryCollection ¶
type GeometryCollection struct {
// contains filtered or unexported fields
}
GeometryCollection是一个具有相同SRID的任意几何类型的集合
func NewGeometryCollection ¶
func NewGeometryCollection() *GeometryCollection
NewGeometryCollection函数 创建一个明确规定的GeometryCollection
func (*GeometryCollection) Bounds ¶
func (gc *GeometryCollection) Bounds() *Bounds
Bounds returns the bounds of all the geometries in gc.
func (*GeometryCollection) Empty ¶
func (gc *GeometryCollection) Empty() bool
Empty方法 检测集合是否为空,为空时返回true
func (*GeometryCollection) FlatCoords ¶
func (*GeometryCollection) FlatCoords() []float64
FlatCoords方法 坐标报错
func (*GeometryCollection) Geom ¶
func (gc *GeometryCollection) Geom(i int) T
* *------------------------------ * GeometryCollection(几何图像集合)相关的方法 *---------------------------------
Geom方法 返回指定索引的几何图像
func (*GeometryCollection) Layout ¶
func (gc *GeometryCollection) Layout() Layout
Layout方法 返回最小的视图,在所有几何图形中
func (*GeometryCollection) MustPush ¶
func (gc *GeometryCollection) MustPush(gs ...T) *GeometryCollection
MustPush方法 向集合中添加几何图形,如果有错误均将抛出
func (*GeometryCollection) NumGeoms ¶
func (gc *GeometryCollection) NumGeoms() int
NumGeoms方法 返回gc中几何图形的数目
func (*GeometryCollection) Push ¶
func (gc *GeometryCollection) Push(gs ...T) error
Push方法 向集合中添加几何元素
func (*GeometryCollection) SetSRID ¶
func (gc *GeometryCollection) SetSRID(srid int) *GeometryCollection
SetSRID方法 设置集合的坐标系参考,这个是集合的基础属性
func (*GeometryCollection) Stride ¶
func (gc *GeometryCollection) Stride() int
Stride方法 返回gc中图形的视图维数
type Layout ¶
type Layout int
一个图层可以被维数来描述。N>4 也是一个有效的图层,维度使用x,y,z,m来描述。m是在经典维度描述中附加 的一个值。m可以用描述以时间等其他属性。当前不支持描述一维
type LineString ¶
type LineString struct {
// contains filtered or unexported fields
}
LineString 代表了单线类型
func NewLineString ¶
func NewLineString(l Layout) *LineString
NewLineString 分配了一个没有控制点并且符合Layout的 Linestring
func NewLineStringFlat ¶
func NewLineStringFlat(layout Layout, flatCoords []float64) *LineString
NewLineStringFlat 分配了一个有控制点(flatCoords)并且符合Layout的 Linestring
func (*LineString) Clone ¶
func (ls *LineString) Clone() *LineString
Clone方法 返回一个Linestring的拷贝,这个不是ls的别名
func (*LineString) Interpolate ¶
func (ls *LineString) Interpolate(val float64, dim int) (int, float64)
Interpolate returns the index and delta of val in dimension dim.
func (*LineString) MustSetCoords ¶
func (ls *LineString) MustSetCoords(coords []Coord) *LineString
MustSetCoords方法 设置Linestring的控制点,但是有任何 ERROR 都会抛出
func (*LineString) Points ¶
func (ls *LineString) Points() *MultiPoint
Points方法 返回一个MuitiPoint,其中是linestring的控制点
func (*LineString) SetCoords ¶
func (ls *LineString) SetCoords(coords []Coord) (*LineString, error)
SetCoords方法 为Linestring 设置控制点
func (*LineString) SetSRID ¶
func (ls *LineString) SetSRID(srid int) *LineString
SetSRID方法 设置Linestring的 坐标系参考
func (*LineString) SubLineString ¶
func (ls *LineString) SubLineString(start, stop int) *LineString
SubLineString方法返回一个开始和结束点相同的 Linestring. 返回的Linestring 替代了 ls
type LinearRing ¶
type LinearRing struct {
// contains filtered or unexported fields
}
LinearRing 是线环对象。LinearRing 是一个封闭的 LineString 即起始和终止点有相同的坐标值。 Polygon由LinearRing围成。LinearRing的创建方法与LineString是一样的, 惟一不同的LinearRing必须要闭合。
func NewLinearRingFlat ¶
func NewLinearRingFlat(layout Layout, flatCoords []float64) *LinearRing
NewLinearRingFlat 创建一个已传入坐标为控制点的LinearRing
func (*LinearRing) Area ¶
func (lr *LinearRing) Area() float64
* *------------------------------ * LinearRing(线环)相关的方法 *---------------------------------
Area方法 返回线环的面积
func (*LinearRing) MustSetCoords ¶
func (lr *LinearRing) MustSetCoords(coords []Coord) *LinearRing
MustSetCoords方法 设置点坐标,任何错误都将抛出
func (*LinearRing) SetCoords ¶
func (lr *LinearRing) SetCoords(coords []Coord) (*LinearRing, error)
SetCoords方法 设置坐标
func (*LinearRing) SetSRID ¶
func (lr *LinearRing) SetSRID(srid int) *LinearRing
SetSRID方法 设置Linestring的坐标系参考
type MultiLineString ¶
type MultiLineString struct {
// contains filtered or unexported fields
}
MultiLineString 是 LineStrings的集合.
func NewMultiLineString ¶
func NewMultiLineString(layout Layout) *MultiLineString
NewMultiLineString函数返回一个没有 Linestring 的MultiLinestring
func NewMultiLineStringFlat ¶
func NewMultiLineStringFlat(layout Layout, flatCoords []float64, ends []int) *MultiLineString
NewMultiLineStringFlat函数 返回一个新的、有Linestring的MultiLinestring.
func (*MultiLineString) Clone ¶
func (mls *MultiLineString) Clone() *MultiLineString
Clone方法 对MultiPoint进行深层拷贝
func (*MultiLineString) Length ¶
func (mls *MultiLineString) Length() float64
Length方法 返回集合中 Linestring 长度的和
func (*MultiLineString) LineString ¶
func (mls *MultiLineString) LineString(i int) *LineString
LineString方法 返回指定索引的 Lienstring
func (*MultiLineString) MustSetCoords ¶
func (mls *MultiLineString) MustSetCoords(coords [][]Coord) *MultiLineString
MustSetCoords方法 设置坐标,如果有错将会抛出
func (*MultiLineString) NumLineStrings ¶
func (mls *MultiLineString) NumLineStrings() int
NumLineStrings方法 返回集合中Lienstring的个数
func (*MultiLineString) Push ¶
func (mls *MultiLineString) Push(ls *LineString) error
Push方法 向集合中添加一个Linestring
func (*MultiLineString) SetCoords ¶
func (mls *MultiLineString) SetCoords(coords [][]Coord) (*MultiLineString, error)
SetCoords方法 设置坐标
func (*MultiLineString) SetSRID ¶
func (mls *MultiLineString) SetSRID(srid int) *MultiLineString
SetSRID方法 设置MultiLinestring的坐标系参考
func (*MultiLineString) Swap ¶
func (mls *MultiLineString) Swap(mls2 *MultiLineString)
Swap方法 将本集合与传入的集合互相交换
type MultiPoint ¶
type MultiPoint struct {
// contains filtered or unexported fields
}
MultiPoint 是点的集合
func NewMultiPoint ¶
func NewMultiPoint(layout Layout) *MultiPoint
NewMultiPoint 函数返回一个新的、空的 MultiPoint
func NewMultiPointFlat ¶
func NewMultiPointFlat(layout Layout, flatCoords []float64) *MultiPoint
NewMultiPointFlat函数 创建一个新的,有坐标的MultiPoint
func (*MultiPoint) MustSetCoords ¶
func (mp *MultiPoint) MustSetCoords(coords []Coord) *MultiPoint
MustSetCoords方法 设置点集的坐标,当有任何错误时均会抛出
func (*MultiPoint) SetCoords ¶
func (mp *MultiPoint) SetCoords(coords []Coord) (*MultiPoint, error)
SetCoords方法 设置点集坐标
func (*MultiPoint) SetSRID ¶
func (mp *MultiPoint) SetSRID(srid int) *MultiPoint
SetSRID方法 设置点集的坐标系参考
type MultiPolygon ¶
type MultiPolygon struct {
// contains filtered or unexported fields
}
MultiPolygon对象是一个多边形的集合
func NewMultiPolygon ¶
func NewMultiPolygon(layout Layout) *MultiPolygon
NewMultiPolygon函数 创建一个没有多边形的 MultiPolygon
func NewMultiPolygonFlat ¶
func NewMultiPolygonFlat(layout Layout, flatCoords []float64, endss [][]int) *MultiPolygon
NewMultiPolygonFlat函数 根据传入参数构建一个非空的MultiPolygon
func (*MultiPolygon) MustSetCoords ¶
func (mp *MultiPolygon) MustSetCoords(coords [][][]Coord) *MultiPolygon
MustSetCoords方法 设置坐标,遇到任何错误都将抛出
func (*MultiPolygon) NumPolygons ¶
func (mp *MultiPolygon) NumPolygons() int
NumPolygons方法 获取集合中多边行的数目
func (*MultiPolygon) SetCoords ¶
func (mp *MultiPolygon) SetCoords(coords [][][]Coord) (*MultiPolygon, error)
SetCoords方法 设置对象的坐标
func (*MultiPolygon) SetSRID ¶
func (mp *MultiPolygon) SetSRID(srid int) *MultiPolygon
SetSRID方法 设置对象的坐标系参考
func (*MultiPolygon) Swap ¶
func (mp *MultiPolygon) Swap(mp2 *MultiPolygon)
Swap方法 将本对象与传入的多边形集合对象互相交换
type Point ¶
type Point struct {
// contains filtered or unexported fields
}
一个Point代表一个点
func NewPointFlat ¶
NewPointFlat 函数根据视图 l 和传入的点坐标数组分配一个点
func (*Point) FlatCoords ¶
func (g *Point) FlatCoords() []float64
func (*Point) MustSetCoords ¶
MustSetCoords方法 设置点的坐标,但是如果有任何错误都会抛出
type Polygon ¶
type Polygon struct {
// contains filtered or unexported fields
}
Polygon对象 多变形对象是一个LinearRing(线环)的集合。第一个LinearRing作为外边界, 随后的LinearRing对象作为内边界
func NewPolygon ¶
NewPolygon函数 创建一个空的多边形
Example ¶
unitSquare := NewPolygon(XY).MustSetCoords([][]Coord{ {{0, 0}, {1, 0}, {1, 1}, {0, 1}, {0, 0}}, }) fmt.Printf("unitSquare.Area() == %f", unitSquare.Area())
Output: unitSquare.Area() == 1.000000
func NewPolygonFlat ¶
NewPolygonFlat函数 根据传入的坐标和视图类型创建多边形
func (*Polygon) MustSetCoords ¶
MustSetCoords方法 设置坐标,任何错误都将抛出
func (*Polygon) NumLinearRings ¶
NumLinearRings方法 返回LinearRing的数目
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
Package bigxy 包含平面(XY)数据的强大地理功能。
|
Package bigxy 包含平面(XY)数据的强大地理功能。 |
encoding
|
|
ewkb
Package ewkb 实现了 扩展的著名二进制编码和解码。
|
Package ewkb 实现了 扩展的著名二进制编码和解码。 |
ewkbhex
Package ewkbhex 实现了扩展的著名二进制 字符串的编码和解码
|
Package ewkbhex 实现了扩展的著名二进制 字符串的编码和解码 |
geojson
Package geojson 实现了 GeoJSON 的 编码和解码.
|
Package geojson 实现了 GeoJSON 的 编码和解码. |
igc
Package igc 实现 an IGC 分析器.
|
Package igc 实现 an IGC 分析器. |
kml
Package kml 实现 KML 的编码.
|
Package kml 实现 KML 的编码. |
wkb
Package wkb 实现了 WKB 的编码和解码。
|
Package wkb 实现了 WKB 的编码和解码。 |
wkbcommon
Package wkbcommon 包含了 WKB and EWKB 编码相关的公共代码 Package wkbcommon 包含了 WKB and EWKB 编码相关的公共代码.
|
Package wkbcommon 包含了 WKB and EWKB 编码相关的公共代码 Package wkbcommon 包含了 WKB and EWKB 编码相关的公共代码. |
wkbhex
Package wkbhex 实现非扩展二进制对于 string 的编码和解码
|
Package wkbhex 实现非扩展二进制对于 string 的编码和解码 |
internal
|
|
定义了几何图形质心计算相关函数 Package xy 包含了低维平面(xy)相关的函数。
|
定义了几何图形质心计算相关函数 Package xy 包含了低维平面(xy)相关的函数。 |
Package xyz contains operations in 3d coordinate space.
|
Package xyz contains operations in 3d coordinate space. |