postgresql中装gis插件_Postgresql 空间扩展需要Postgis插件
下载Postgis
Postgresql扩展Postgis
Windows:
SQL Shell进入需要扩展Postgis的数据库。
hngsmm=# CREATE EXTENSION postgis;
Linux :
yum install postgis2_94 # 因为安装的PostgreSQL版本为9.4,所以是postgis2_94
注:需要PostgreSQL9.1以上版本才支持PostGIS.
PostGIS中的常用函数
......好几页省略.....
首先需要说明一下,这里许多函数是以ST_[X]yyy形式命名的,事实上很多函数也可以通过xyyy的形式访问,在PostGIS的函数库中我们可以看到这两种函数定义完全一样。
1. OGC标准函数
管理函数:
添加几何字段AddGeometryColumn(,,,,,)
删除几何字段DropGeometryColumn(,,)
检查数据库几何字段并在geometry_columns中归档Probe_Geometry_Columns()
给几何对象设置空间参考(在通过一个范围做空间查询时常用)ST_SetSRID(geometry,integer)
几何对象关系函数:
获取两个几何对象间的距离ST_Distance(geometry,geometry)
如果两个几何对象间距离在给定值范围内,则返回TRUE ST_DWithin(geometry,geometry,float)
判断两个几何对象是否相等
(比如LINESTRING(00,22)和LINESTRING(00,11,22)是相同的几何对象)ST_Equals(geometry,geometry)
判断两个几何对象是否分离ST_Disjoint(geometry,geometry)
判断两个几何对象是否相交ST_Intersects(geometry,geometry)
判断两个几何对象的边缘是否接触ST_Touches(geometry,geometry)
判断两个几何对象是否互相穿过ST_Crosses(geometry,geometry)
判断A是否被B包含ST_Within(geometry A,geometry B)
判断两个几何对象是否是重叠ST_Overlaps(geometry,geometry)
判断A是否包含B ST_Contains(geometry A,geometry B)
判断A是否覆盖B ST_Covers(geometry A,geometry B)
判断A是否被B所覆盖ST_CoveredBy(geometry A,geometry B)
通过DE-9IM矩阵判断两个几何对象的关系是否成立ST_Relate(geometry,geometry,intersectionPatternMatrix)
获得两个几何对象的关系(DE-9IM矩阵)ST_Relate(geometry,geometry)
几何对象处理函数:
获取几何对象的中心ST_Centroid(geometry)
面积量测ST_Area(geometry)
长度量测ST_Length(geometry)
返回曲面上的一个点ST_PointOnSurface(geometry)
获取边界ST_Boundary(geometry)
获取缓冲后的几何对象ST_Buffer(geometry,double,[integer])
获取多几何对象的外接对象ST_ConvexHull(geometry)
获取两个几何对象相交的部分ST_Intersection(geometry,geometry)
将经度小于0的值加360使所有经度值在0-360间ST_Shift_Longitude(geometry)
获取两个几何对象不相交的部分(A、B可互换)ST_SymDifference(geometry A,geometry B)
从A去除和B相交的部分后返回ST_Difference(geometry A,geometry B)
返回两个几何对象的合并结果ST_Union(geometry,geometry)
返回一系列几何对象的合并结果ST_Union(geometryset)
用较少的内存和较长的时间完成合并操作,结果和ST_Union相同ST_MemUnion(geometryset)
几何对象存取函数:
获取几何对象的WKT描述ST_AsText(geometry)
获取几何对象的WKB描述ST_AsBinary(geometry)
获取几何对象的空间参考ID ST_SRID(geometry)
获取几何对象的维数ST_Dimension(geometry)
获取几何对象的边界范围ST_Envelope(geometry)
判断几何对象是否为空ST_IsEmpty(geometry)
判断几何对象是否不包含特殊点(比如自相交)ST_IsSimple(geometry)
判断几何对象是否闭合ST_IsClosed(geometry)
判断曲线是否闭合并且不包含特殊点ST_IsRing(geometry)
获取多几何对象中的对象个数ST_NumGeometries(geometry)
获取多几何对象中第N个对象ST_GeometryN(geometry,int)
获取几何对象中的点个数ST_NumPoints(geometry)
获取几何对象的第N个点ST_PointN(geometry,integer)
获取多边形的外边缘ST_ExteriorRing(geometry)
获取多边形内边界个数ST_NumInteriorRings(geometry)
同上ST_NumInteriorRing(geometry)
获取多边形的第N个内边界ST_InteriorRingN(geometry,integer)
获取线的终点ST_EndPoint(geometry)
获取线的起始点ST_StartPoint(geometry)
获取几何对象的类型GeometryType(geometry)
类似上,但是不检查M值,即POINTM对象会被判断为point ST_GeometryType(geometry)
获取点的X坐标ST_X(geometry)
获取点的Y坐标ST_Y(geometry)
获取点的Z坐标ST_Z(geometry)
获取点的M值ST_M(geometry)
几何对象构造函数:
参考语义: Text:WKT WKB:WKB Geom:Geometry M:Multi Bd:BuildArea Coll:Collection ST_GeomFromText(text,[])
ST_PointFromText(text,[])
ST_LineFromText(text,[])
ST_LinestringFromText(text,[])
ST_PolyFromText(text,[])
ST_PolygonFromText(text,[])
ST_MPointFromText(text,[])
ST_MLineFromText(text,[])
ST_MPolyFromText(text,[])
ST_GeomCollFromText(text,[])
ST_GeomFromWKB(bytea,[])
ST_GeometryFromWKB(bytea,[])
ST_PointFromWKB(bytea,[])
ST_LineFromWKB(bytea,[])
ST_LinestringFromWKB(bytea,[])
ST_PolyFromWKB(bytea,[])
ST_PolygonFromWKB(bytea,[])
ST_MPointFromWKB(bytea,[])
ST_MLineFromWKB(bytea,[])
ST_MPolyFromWKB(bytea,[])
ST_GeomCollFromWKB(bytea,[])
ST_BdPolyFromText(text WKT,integer SRID)
ST_BdMPolyFromText(text WKT,integer SRID)
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
几何量测函数:
量测面积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],geometry,[precision])
ST_AsGeoJson([version],geometry,[precision],[options])
几何对象创建:
参考语义: Dump:转储 ST_GeomFromEWKT(text)
ST_GeomFromEWKB(bytea)
ST_MakePoint(,,[],[])
ST_MakePointM(,,)
ST_MakeBox2D(,)
ST_MakeBox3D(,)
ST_MakeLine(geometryset)
ST_MakeLine(geometry,geometry)
ST_LineFromMultiPoint(multipoint)
ST_MakePolygon(linestring,[linestring[]])
ST_BuildArea(geometry)
ST_Polygonize(geometryset)
ST_Collect(geometryset)
ST_Collect(geometry,geometry)
ST_Dump(geometry)
ST_DumpRings(geometry)
几何对象编辑:
给几何对象添加一个边界,会使查询速度加快ST_AddBBOX(geometry)
删除几何对象的边界ST_DropBBOX(geometry)
添加、删除、设置点ST_AddPoint(linestring,point,[])
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,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)
对2D几何对象作仿射变化ST_Affine(geometry,float8,float8,float8,float8,float8,float8)
对几何对象作偏移ST_Translate(geometry,float8,float8,float8)
对几何对象作缩放ST_Scale(geometry,float8,float8,float8)
对3D几何对象作旋转ST_RotateZ(geometry,float8)
ST_RotateX(geometry,float8)
ST_RotateY(geometry,float8)
对2D对象作偏移和缩放ST_TransScale(geometry,float8,float8,float8,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,sizeX,sizeY),ST_SnapToGrid(geometry,size)
第二个参数为点,指定原点坐标ST_SnapToGrid(geometry,geometry,sizeX,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,float8)
杂项功能函数:
几何对象的摘要ST_Summary(geometry)
几何对象的边界ST_box2d(geometry)
ST_box3d(geometry)
多个几何对象的边界ST_extent(geometryset)
0=2d,1=3dm,2=3dz,3=4dST_zmflag(geometry)
是否包含BoundingBoxST_HasBBOX(geometry)
几何对象的维数:2、3、4ST_ndims(geometry)
子对象的个数ST_nrings(geometry)
ST_npoints(geometry)
对象是否验证成功ST_isvalid(geometry)
扩大几何对象ST_expand(geometry,float)
计算一个空间表的边界范围ST_estimated_extent([schema],table,geocolumn)
获得空间参考ST_find_srid(,,)
几何对象使用的内存大小,单位byteST_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(geometryset)
长事务支持:
启用/关闭长事务支持,重复调用无副作用EnableLongTransactions()
DisableLongTransactions()
检查对行的update和delete操作是否已授权CheckAuth([],,)
锁定行LockRow([],,,,[])
解锁行UnlockRows()
在当前事务中添加授权IDAddAuth()
其它还有SQL-MM和ArcSDE样式的函数支持,可以参考http://postgis.refractions.net/documentation/manual-1.3/ch06.html#id2750611,这里就不详细列了。
参考阅读
postgresql中装gis插件_Postgresql 空间扩展需要Postgis插件相关推荐
- mysql gis vs postgis_mysql空间扩展VSPostGIS
功能 Mysql spatial extension PostGIS 空间索引 仅MyISAM支持R树索引,InnoDB不支持 GIST树索引(R树的变种) 支持的空间类型 仅二维数据 二维.三维以及 ...
- mysql空间扩展 VS PostGIS
http://www.cnblogs.com/LBSer/p/3629149.html 功能 Mysql spatial extension PostGIS 空间索引 仅MyISAM支持R树索引,I ...
- postgresql中装gis插件_使用PostGIS_高级扩展插件使用_开发进阶_云原生数仓 AnalyticDB PostgreSQL - 阿里云...
通用操作 1)客户端连接实例 2)初次装载PostGIS扩展模块 创建扩展: create extension postgis; 查看版本: select postgis_version(); sel ...
- postgresql中装gis插件_PostgreSQL插件PostGIS安装
参考官网 http://postgis.net/ PostGis版本2.5.3 1.安装libxml2 # yum install libxml2 libxml2-devel 2.安装json-c # ...
- PostgreSQL使用PostGIS插件,存储GIS数据
PostGIS是PostgreSQL对象关系数据库的空间数据库扩展程序.它增加了对地理对象的支持,允许在SQL中运行位置查询. [About PostGIS](About PostGIS | Post ...
- 基于QGIS初探PostgreSQL的PostGIS插件,包括YUM和编译安装PostGIS
写在前面:本文介绍 QGIS,只是为了展示怎么使用 PostGIS,因作者本人追求的是 PostgreSQL,所以本文的重点还是 PostGIS 这个 PostgreSQL 的插件,QGIS软件只做简 ...
- postgresql安装postgis插件并导入数据
今天分享 postgresql安装postgis插件并导入数据,首先我们需要知道什么时候需要安装postgis插件,这是很重要的一个前提:一般来说数据有空间索引坐标相关的数据,需要安装,或者操作数据报 ...
- MySQL中的空间扩展
目录 19.1. 前言19.2. OpenGIS几何模型 19.2.1. Geometry类的层次19.2.2. 类Geometry19.2.3. 类Point19.2.4. 类Curve19.2.5 ...
- 京东云PostgreSQL在GIS场景的应用分享
作者:曲艺伟/彭智 在地图或地理信息有关的场景里 ,地址关键词的检索尤其重要.比如打开百度地图,想要查询某个位置的信息"北京市海淀区清华东路17号中国农业大学",往往我们输入的是关 ...
最新文章
- Nature:揭示大脑中的免疫记忆
- 获取本机主机名称和IP地址
- js函数提示 vscode_工欲善其事,必先利其器,VSCode高效插件
- 手工画设计模式的类图
- yocto添加登录用户和密码
- 程序员面试通关的 101 道真题
- Linux进程管理之SMP负载平衡
- python3简单爬取妹纸图网站图片
- servlet+jsp面试题
- 刘宇凡:关于圈子的只言片语
- deflate php,PHP Deflate a string
- 服务器定时发送qq消息,python实现定时发送qq消息.pdf
- Nexus 6p 刷入TWRP和OPENGAPPS
- 据说深圳电子烟工厂生产了全球产量的90%,为了了解一下这个行业,我做了以下分析
- windows 命令方式查找指定IP的MAC地址
- 5、实现登陆功能:如果用户名输入“tom”,密码“123”,提示登陆成功,否则提示输入错误,请重新输入!您还有XX次机会。 三次输入错误后将不可以再输入,并提示对不起,你的账号将被锁定
- 0926物体检测和数据集
- 机器人控制算法一之四轴机械臂正、逆运动学详解
- linux关于登录变成192login
- spring-boot-starter 自定义