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(,
长事务支持: