微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL+PostGIS的使用 4

2. PostGIS扩展函数

管理函数

删除一个空间表(包括geometry_columns中的记录) DropGeometryTable([],)
更新空间表的空间参考 UpdateGeometrySRID([],)
更新空间表的统计信息 update_geometry_stats([,])

参考语义:
Geos:GEOS库
Jts:JTS库
Proj:PROJ4库 postgis_version()

postgis_lib_version()
postgis_lib_build_date()
postgis_script_build_date()
postgis_scripts_installed()
postgis_scripts_released()
postgis_geos_version()
postgis_jts_version()
postgis_proj_version()
postgis_uses_stats()
postgis_full_version()

几何操作符:

A范围=B范围 A = B
A范围覆盖B范围或A范围在B范围左侧 A &<> B
A范围在B范围左侧 A <<>> B
A范围覆盖B范围或A范围在B范围下方 A &<| B A范围覆盖B范围或A范围在B范围上方 A |&> B
A范围在B范围下方 A <<| B A范围在B范围上方 A |>> B
A=B A ~= B
A范围被B范围包含 A @ B
A范围包含B范围 A ~ B
A范围覆盖B范围 A && B

几何量测函数

量测面积 ST_Area(geometry)
根据经纬度点计算在地球曲面上的距离,单位米,地球半径取值6370986米 ST_distance_sphere(point,point)
类似上,使用指定的地球椭球参数 ST_distance_spheroid(point,point,spheroid)
量测2D对象长度 ST_length2d(geometry)
量测3D对象长度 ST_length3d(geometry)
根据经纬度对象计算在地球曲面上的长度 ST_length_spheroid(geometry,spheroid)
ST_length3d_spheroid(geometry,spheroid)
量测两个对象间距离 ST_distance(geometry,geometry)
量测两条线之间的最大距离 ST_max_distance(linestring,linestring)
量测2D对象的周长 ST_perimeter(geometry)
ST_perimeter2d(geometry)
量测3D对象的周长 ST_perimeter3d(geometry)
量测两点构成的方位角,单位弧度 ST_azimuth(geometry,geometry)

几何对象输出
参考语义:
NDR:Little Endian
XDR:big-endian
HEXEWKB:Canonical
SVG:SVG 格式
GML:GML 格式
KML:KML 格式
GeoJson:GeoJson 格式

ST_AsBinary(geometry,{'NDR'|'XDR'})
ST_AsEWKT(geometry)
ST_AsEWKB(geometry,{'NDR'|'XDR'})
ST_AsHEXEWKB(geometry,{'NDR'|'XDR'})
ST_AsSVG(geometry,[rel],[precision])
ST_AsGML([version],geometry,[precision])
ST_AsKML([version],[precision])
ST_AsGeoJson([version],[precision],[options])

几何对象创建

参考语义:
Dump:转储 ST_GeomFromEWKT(text)

ST_GeomFromEWKB(bytea)
ST_MakePoint(,[],[])
ST_MakePointM(,)
ST_MakeBox2D(,)
ST_MakeBox3D(,)
ST_MakeLine(geometry set)
ST_MakeLine(geometry,geometry)
ST_LineFromMultiPoint(multipoint)
ST_Makepolygon(linestring,[linestring[]])
ST_BuildArea(geometry)
ST_polygonize(geometry set)
ST_Collect(geometry set)
ST_Collect(geometry,geometry)
ST_Dump(geometry)
ST_DumpRings(geometry)

几何对象编辑:

给几何对象添加一个边界,会使查询速度加快 ST_AddBBox(geometry)
删除几何对象的边界 ST_DropBBox(geometry)
添加删除、设置点 ST_AddPoint(linestring,[])
ST_RemovePoint(linestring,offset)
ST_SetPoint(linestring,N,point)
几何对象类型转换 ST_Force_collection(geometry)
ST_Force_2d(geometry)
ST_Force_3dz(geometry),ST_Force_3d(geometry),
ST_Force_3dm(geometry)
ST_Force_4d(geometry)
ST_Multi(geometry)
将几何对象转化到指定空间参考 ST_Transform(geometry,integer)
对3D几何对象作仿射变化 ST_Affine(geometry,float8,float8)
对2D几何对象作仿射变化 ST_Affine(geometry,float8)
对几何对象作偏移 ST_Translate(geometry,float8)
对几何对象作缩放 ST_Scale(geometry,float8)
对3D几何对象作旋转 ST_RotateZ(geometry,float8)
ST_RotateX(geometry,float8)
ST_RotateY(geometry,float8)
对2D对象作偏移和缩放 ST_TransScale(geometry,float8)
反转 ST_Reverse(geometry)
转化到右手定则 ST_ForceRHR(geometry)
参考IsSimple函数
使用Douglas-Peuker算法 ST_Simplify(geometry,tolerance)
ST_SimplifyPreservetopology(geometry,tolerance)
讲几何对象顶点捕捉到网格 ST_SnapToGrid(geometry,originX,originY,sizeX,sizeY)
ST_SnapToGrid(geometry,sizeY),ST_SnapToGrid(geometry,size)
第二个参数为点,指定原点坐标 ST_SnapToGrid(geometry,sizeY,sizeZ,sizeM)
分段 ST_Segmentize(geometry,maxlength)
合并为线 ST_LineMerge(geometry)

线性参考:

根据location(0-1)获得该位置的点 ST_line_interpolate_point(linestring,location)
获取一段线 ST_line_substring(linestring,start,end)
根据点获取location(0-1) ST_line_locate_point(Linestring,Point)
根据量测值获得几何对象 ST_locate_along_measure(geometry,float8)
根据量测值区间获得几何对象集合 ST_locate_between_measures(geometry,float8)

杂项功能函数
几何对象的摘要 ST_Summary(geometry)
几何对象的边界 ST_Box2d(geometry)
ST_Box3d(geometry)
多个几何对象的边界 ST_extent(geometry set)
0=2d,1=3dm,2=3dz,3=4d ST_zmflag(geometry)
是否包含Bounding Box ST_HasBBox(geometry)
几何对象的维数:2、3、4 ST_ndims(geometry)
子对象的个数 ST_nrings(geometry)
ST_npoints(geometry)
对象是否验证成功 ST_isvalid(geometry)
扩大几何对象 ST_expand(geometry,float)
计算一个空间表的边界范围 ST_estimated_extent([schema],table,geocolumn)
获得空间参考 ST_find_srid(,












长事务支持


,) 几何对象使用的内存大小,单位byte ST_mem_size(geometry) 点是否在圆上 ST_point_inside_circle(,) 获取边界的X、Y、Z ST_XMin(Box3d) ST_YMin(Box3d) ST_ZMin(Box3d) ST_XMax(Box3d) ST_YMax(Box3d) ST_ZMax(Box3d) 构造一个几何对象的数组 ST_Accum(geometry set) 启用/关闭长事务支持,重复调用无副作用 EnableLongTransactions() disableLongTransactions() 检查对行的update和delete操作是否已授权 CheckAuth([],

,) 锁定行 LockRow([],





,[]) 解锁行 UnlockRows() 在当前事务中添加授权ID AddAuth() 其它还有sql-MM和ArcSDE样式的函数支持,可以参考http://postgis.refractions.net/documentation/manual-1.3/ch06.html#id2750611,这里就不详细列了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐