Documentation ¶
Index ¶
- Constants
- Variables
- func Convert4326To3857(lon, lat float64) (lonIn3857, latIn3857 float64)
- func LonLatIn3857ToMeteoGridIdx(lonIn3857, latIn3857 float64) (idx int32)
- func PointsToWkt(lon1, lon2, lat1, lat2 float64) string
- func SpanIn4326ToMeteoGridIdSpans(span [4]float64) (ids [][2]int32)
- func SpanIn4326ToMeteoGridIds(span [4]float64) (ids []int32)
- func SpanToWkt(span [4]float64) string
- type AlignedLabel
- type AnyJson
- type GdalGeo
- type GdalToolbox
- func (g *GdalToolbox) CheckWkt(wkt string, srid int) (err error)
- func (g *GdalToolbox) CropRasters(tifWkt []ImgMergeFile, extWkt, out string) (err error)
- func (g *GdalToolbox) Cut(wkt, line string) (out []string, err error)
- func (g *GdalToolbox) Difference(gA, gB GdalGeo, srid int) (ret GdalGeo, err error)
- func (g *GdalToolbox) EncodingShapefile(shp, cpg string, rmOld bool) (out string, err error)
- func (g *GdalToolbox) GeoJSONToWkb(geoJson AnyJson) (ret GdalGeo, err error)
- func (g *GdalToolbox) GetAreaCoverage(districtGeom GdalGeo, imagesGeom []GdalGeo) (ratios []float32, dst AnyJson, unions, diffs []AnyJson, err error)
- func (g *GdalToolbox) GetAreaCoverageRatio(districtWkt string, imagesWkt []string) (ratio float32, err error)
- func (g *GdalToolbox) GetGeoJSONFromShp(shp string) (ret AnyJson, err error)
- func (g *GdalToolbox) GetLabelsFromShapefile(shp, labelField string) (labels []string, err error)
- func (g *GdalToolbox) GetSridOfShapefile(shp string) (srid int, err error)
- func (g *GdalToolbox) GetWkbFromShp(shp string) (ret GdalGeo, err error)
- func (g *GdalToolbox) GetWktFromShp(shp string) (ret string, err error)
- func (g *GdalToolbox) GetWktSpan(wkt string, srid int) (span [4]float64, err error)
- func (g *GdalToolbox) Intersection(gs []GdalGeo, srid int) (ret GdalGeo, err error)
- func (g *GdalToolbox) MuffAndSimp(wkt string, t float64) (out string, err error)
- func (g *GdalToolbox) ParseMeteoRaster(tif string, buf []int16) (err error)
- func (g *GdalToolbox) ParseRaster(tif string, buf [][]byte) (err error)
- func (g *GdalToolbox) ParseShapefile(shp, labelField string) (ret []Speckle, err error)
- func (g *GdalToolbox) ProcessZoneMerge(uc *Uncertainty, dis int) (ret AnyJson, err error)
- func (g *GdalToolbox) Reshape(wkt, line string) (out string, err error)
- func (g *GdalToolbox) ShapefileToGeoJSON(shp string, dstSrid ...int) (out string, err error)
- func (g *GdalToolbox) Simplify(wkt string) (out string, err error)
- func (g *GdalToolbox) SubtractZones(uc *Uncertainty, subs []Uncertainty, srid int) (err error)
- func (g *GdalToolbox) TransformShapefile(shp string, tSrid int) (out string, err error)
- func (g *GdalToolbox) TransformWkb(wkb GdalGeo, srid, tSrid int) (ret GdalGeo, err error)
- func (g *GdalToolbox) TransformWkt(wkt string, srid, tSrid int) (ret string, err error)
- func (g *GdalToolbox) Union(gs []GdalGeo, srid int) (ret GdalGeo, err error)
- func (g *GdalToolbox) UpdateLabelInShapefile(shp, labelField, zone string, alignRet AlignedLabel) (err error)
- func (g *GdalToolbox) WkbToGeoJSON(wkb GdalGeo, srid int) (ret AnyJson, err error)
- func (g *GdalToolbox) WkbToWkt(wkb GdalGeo, srid int) (wkt string, err error)
- func (g *GdalToolbox) WktToWkb(wkt string, srid int) (wkb GdalGeo, err error)
- func (g *GdalToolbox) WriteGeoToShapefile(shp string, srid int, gs ...GdalGeo) (err error)
- func (g *GdalToolbox) WriteMergedShapefile(shp string, uc Uncertainty) (err error)
- func (g *GdalToolbox) WriteShapefile(shp, labelField string, srid int, speckles ...Speckle) (err error)
- func (g *GdalToolbox) WriteZoneShapefile(shp string, srid int, ucs ...Uncertainty) (err error)
- type ImgMergeFile
- type LabelCode
- type Speckle
- type Uncertainty
Constants ¶
View Source
const ( FILE_EXT_SHP = ".shp" FILE_EXT_CPG = ".cpg" FILE_EXT_JSON = ".json" SHAPE_ENCODING = "UTF-8" UTF8_ENC = "UTF8" ZH_ENC = "GBK" SHP_DRIVER_NAME = "ESRI Shapefile" ENCODING_OPTION = "ENCODING=" + SHAPE_ENCODING OO_ENCODING = "ENCODING=" + ZH_ENC UNIVERSAL_SRID = 4326 GEOJSON_SRID = 4326 OUTPUT_SRID = 4490 WKT_ALG_SRID = 3857 ErrColumnMissingTemplate = `shp文件中缺失【%s】字段` ErrColumnEmptyTemplate = `shp文件图斑中【%s】字段为空` MergeBufferDistance = 0.005 MergeBufferMeter = 0.00001 MergeBufferSegs = 24 CoverageThreshold = 0.9999 SimplifyT = 1.0 SHP_FIELD_UID = "uid" SHP_FIELD_OID = "oid" TMP_GEOJSON = "geo_%s.json" )
View Source
const ( METEO_TIF_X = 6939 METEO_TIF_Y = 5211 )
View Source
const ( CutLineBuffDist = 0.005 BuffPercent = 0.05 BuffQuadSegs = 12 )
Variables ¶
View Source
var ( ErrGdalDriverCreate = errors.New("gdal driver create err") ErrGdalDriverOpen = errors.New("gdal driver open err") ErrGdalEmptyShp = errors.New("gdal shp is empty") ErrVoidSrid = errors.New("gdal shp with void srid") ErrGdalDriverCount = errors.New("gdal driver count err") ErrGdalWrongGeoType = errors.New("gdal wrong geo type") ErrGdalWrongGeoJSON = errors.New("gdal wrong GeoJSON") ErrWrongPositionedLine = errors.New("wrong positioned line") ErrNotEnoughLinePoints = errors.New("not enough line points") ErrEmptyCutEdge = errors.New("cut edge is empty") ErrWrongLineEndsCount = errors.New("wrong line ends count") ErrInvalidWKT = errors.New("invalid WKT") ErrWrongBufferSize = errors.New("wrong buffer size") ErrInvalidTif = errors.New("invalid tif") ErrWrongTif = errors.New("wrong tif") ErrEmptyTif = errors.New("empty tif") ErrTifReadFailed = errors.New("failed to read tif band") )
Functions ¶
func Convert4326To3857 ¶ added in v1.0.4
func LonLatIn3857ToMeteoGridIdx ¶ added in v1.0.4
func PointsToWkt ¶ added in v1.0.3
func SpanIn4326ToMeteoGridIdSpans ¶ added in v1.0.5
func SpanIn4326ToMeteoGridIds ¶ added in v1.0.4
Types ¶
type AlignedLabel ¶
type AnyJson ¶
type AnyJson = json.RawMessage
type GdalToolbox ¶
type GdalToolbox struct {
// contains filtered or unexported fields
}
func NewGdalToolbox ¶
func NewGdalToolbox(tmpDir ...string) *GdalToolbox
初始化GDAL工具箱,tmpDir为可选的临时目录路径(未提供的话为当前目录)
func (*GdalToolbox) CheckWkt ¶
func (g *GdalToolbox) CheckWkt(wkt string, srid int) (err error)
检查WKT有效性
func (*GdalToolbox) CropRasters ¶
func (g *GdalToolbox) CropRasters(tifWkt []ImgMergeFile, extWkt, out string) (err error)
按各自有效区WKT剪切,并按目标区域WKT镶嵌多张影像tif 排序靠后的tif优先显示
func (*GdalToolbox) Difference ¶
func (g *GdalToolbox) Difference(gA, gB GdalGeo, srid int) (ret GdalGeo, err error)
求两个WKB矢量面之差
func (*GdalToolbox) EncodingShapefile ¶
func (g *GdalToolbox) EncodingShapefile(shp, cpg string, rmOld bool) (out string, err error)
转换整个shp文件的文本编码
func (*GdalToolbox) GeoJSONToWkb ¶
func (g *GdalToolbox) GeoJSONToWkb(geoJson AnyJson) (ret GdalGeo, err error)
GeoJSON转WKB
func (*GdalToolbox) GetAreaCoverage ¶
func (g *GdalToolbox) GetAreaCoverage(districtGeom GdalGeo, imagesGeom []GdalGeo) (ratios []float32, dst AnyJson, unions, diffs []AnyJson, err error)
获取多个影像范围WKB分别在目标区域中的覆盖率及目标区域、影像范围、未覆盖区域的GeoJSON
func (*GdalToolbox) GetAreaCoverageRatio ¶
func (g *GdalToolbox) GetAreaCoverageRatio(districtWkt string, imagesWkt []string) (ratio float32, err error)
获取多个影像的集合在目标区域中的覆盖率
func (*GdalToolbox) GetGeoJSONFromShp ¶
func (g *GdalToolbox) GetGeoJSONFromShp(shp string) (ret AnyJson, err error)
将shp转为GeoJSON(srid=4326)
func (*GdalToolbox) GetLabelsFromShapefile ¶
func (g *GdalToolbox) GetLabelsFromShapefile(shp, labelField string) (labels []string, err error)
获取shp文件中的标签
func (*GdalToolbox) GetSridOfShapefile ¶
func (g *GdalToolbox) GetSridOfShapefile(shp string) (srid int, err error)
获取shp的srid
func (*GdalToolbox) GetWkbFromShp ¶
func (g *GdalToolbox) GetWkbFromShp(shp string) (ret GdalGeo, err error)
将shp转为单个WKB(srid=4326)
func (*GdalToolbox) GetWktFromShp ¶
func (g *GdalToolbox) GetWktFromShp(shp string) (ret string, err error)
将shp转为单个WKT(srid=4326)
func (*GdalToolbox) GetWktSpan ¶ added in v1.0.1
func (g *GdalToolbox) GetWktSpan(wkt string, srid int) (span [4]float64, err error)
获取WKT经纬度范围
func (*GdalToolbox) Intersection ¶
func (g *GdalToolbox) Intersection(gs []GdalGeo, srid int) (ret GdalGeo, err error)
获取多个WKB矢量面公共区
func (*GdalToolbox) MuffAndSimp ¶
func (g *GdalToolbox) MuffAndSimp(wkt string, t float64) (out string, err error)
func (*GdalToolbox) ParseMeteoRaster ¶
func (g *GdalToolbox) ParseMeteoRaster(tif string, buf []int16) (err error)
读取气象Tif
func (*GdalToolbox) ParseRaster ¶
func (g *GdalToolbox) ParseRaster(tif string, buf [][]byte) (err error)
读取一般Tif
func (*GdalToolbox) ParseShapefile ¶
func (g *GdalToolbox) ParseShapefile(shp, labelField string) (ret []Speckle, err error)
从shp文件中解析出图斑矢量
func (*GdalToolbox) ProcessZoneMerge ¶
func (g *GdalToolbox) ProcessZoneMerge(uc *Uncertainty, dis int) (ret AnyJson, err error)
拆分、凸包+缓冲、合并目标区域WKB,输出GeoJSON
func (*GdalToolbox) Reshape ¶
func (g *GdalToolbox) Reshape(wkt, line string) (out string, err error)
func (*GdalToolbox) ShapefileToGeoJSON ¶
func (g *GdalToolbox) ShapefileToGeoJSON(shp string, dstSrid ...int) (out string, err error)
从shp文件转化生成geoJson文件,可通过dstSrid指定目标srid
func (*GdalToolbox) SubtractZones ¶
func (g *GdalToolbox) SubtractZones(uc *Uncertainty, subs []Uncertainty, srid int) (err error)
从目标区域WKB中剪除多个其他区域WKB
func (*GdalToolbox) TransformShapefile ¶
func (g *GdalToolbox) TransformShapefile(shp string, tSrid int) (out string, err error)
转换整个shp文件的坐标系
func (*GdalToolbox) TransformWkb ¶
func (g *GdalToolbox) TransformWkb(wkb GdalGeo, srid, tSrid int) (ret GdalGeo, err error)
转换WKB坐标系
func (*GdalToolbox) TransformWkt ¶ added in v1.0.3
func (g *GdalToolbox) TransformWkt(wkt string, srid, tSrid int) (ret string, err error)
转换WKT坐标系
func (*GdalToolbox) Union ¶
func (g *GdalToolbox) Union(gs []GdalGeo, srid int) (ret GdalGeo, err error)
合并多个WKB矢量面
func (*GdalToolbox) UpdateLabelInShapefile ¶
func (g *GdalToolbox) UpdateLabelInShapefile(shp, labelField, zone string, alignRet AlignedLabel) (err error)
更新shp文件中的标签,可通过zone shp(两个shp坐标系要一致)指定更新/截取区域
func (*GdalToolbox) WkbToGeoJSON ¶
func (g *GdalToolbox) WkbToGeoJSON(wkb GdalGeo, srid int) (ret AnyJson, err error)
WKB转GeoJSON
func (*GdalToolbox) WkbToWkt ¶
func (g *GdalToolbox) WkbToWkt(wkb GdalGeo, srid int) (wkt string, err error)
WKB转WKT
func (*GdalToolbox) WktToWkb ¶
func (g *GdalToolbox) WktToWkb(wkt string, srid int) (wkb GdalGeo, err error)
WKT转WKB
func (*GdalToolbox) WriteGeoToShapefile ¶
func (g *GdalToolbox) WriteGeoToShapefile(shp string, srid int, gs ...GdalGeo) (err error)
将选定矢量WKB写入shp
func (*GdalToolbox) WriteMergedShapefile ¶
func (g *GdalToolbox) WriteMergedShapefile(shp string, uc Uncertainty) (err error)
将图斑合并区域矢量写入shp
func (*GdalToolbox) WriteShapefile ¶
func (g *GdalToolbox) WriteShapefile(shp, labelField string, srid int, speckles ...Speckle) (err error)
将选定图斑矢量写入shp
func (*GdalToolbox) WriteZoneShapefile ¶
func (g *GdalToolbox) WriteZoneShapefile(shp string, srid int, ucs ...Uncertainty) (err error)
将选定区域矢量写入shp
type ImgMergeFile ¶
Source Files ¶
Click to show internal directories.
Click to hide internal directories.