下载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插件相关推荐

  1. mysql gis vs postgis_mysql空间扩展VSPostGIS

    功能 Mysql spatial extension PostGIS 空间索引 仅MyISAM支持R树索引,InnoDB不支持 GIST树索引(R树的变种) 支持的空间类型 仅二维数据 二维.三维以及 ...

  2. mysql空间扩展 VS PostGIS

    http://www.cnblogs.com/LBSer/p/3629149.html 功能 Mysql spatial extension  PostGIS 空间索引 仅MyISAM支持R树索引,I ...

  3. postgresql中装gis插件_使用PostGIS_高级扩展插件使用_开发进阶_云原生数仓 AnalyticDB PostgreSQL - 阿里云...

    通用操作 1)客户端连接实例 2)初次装载PostGIS扩展模块 创建扩展: create extension postgis; 查看版本: select postgis_version(); sel ...

  4. postgresql中装gis插件_PostgreSQL插件PostGIS安装

    参考官网 http://postgis.net/ PostGis版本2.5.3 1.安装libxml2 # yum install libxml2 libxml2-devel 2.安装json-c # ...

  5. PostgreSQL使用PostGIS插件,存储GIS数据

    PostGIS是PostgreSQL对象关系数据库的空间数据库扩展程序.它增加了对地理对象的支持,允许在SQL中运行位置查询. [About PostGIS](About PostGIS | Post ...

  6. 基于QGIS初探PostgreSQL的PostGIS插件,包括YUM和编译安装PostGIS

    写在前面:本文介绍 QGIS,只是为了展示怎么使用 PostGIS,因作者本人追求的是 PostgreSQL,所以本文的重点还是 PostGIS 这个 PostgreSQL 的插件,QGIS软件只做简 ...

  7. postgresql安装postgis插件并导入数据

    今天分享 postgresql安装postgis插件并导入数据,首先我们需要知道什么时候需要安装postgis插件,这是很重要的一个前提:一般来说数据有空间索引坐标相关的数据,需要安装,或者操作数据报 ...

  8. MySQL中的空间扩展

    目录 19.1. 前言19.2. OpenGIS几何模型 19.2.1. Geometry类的层次19.2.2. 类Geometry19.2.3. 类Point19.2.4. 类Curve19.2.5 ...

  9. 京东云PostgreSQL在GIS场景的应用分享

    作者:曲艺伟/彭智 在地图或地理信息有关的场景里 ,地址关键词的检索尤其重要.比如打开百度地图,想要查询某个位置的信息"北京市海淀区清华东路17号中国农业大学",往往我们输入的是关 ...

最新文章

  1. Nature:揭示大脑中的免疫记忆
  2. 获取本机主机名称和IP地址
  3. js函数提示 vscode_工欲善其事,必先利其器,VSCode高效插件
  4. 手工画设计模式的类图
  5. yocto添加登录用户和密码
  6. 程序员面试通关的 101 道真题
  7. Linux进程管理之SMP负载平衡
  8. python3简单爬取妹纸图网站图片
  9. servlet+jsp面试题
  10. 刘宇凡:关于圈子的只言片语
  11. deflate php,PHP Deflate a string
  12. 服务器定时发送qq消息,python实现定时发送qq消息.pdf
  13. Nexus 6p 刷入TWRP和OPENGAPPS
  14. 据说深圳电子烟工厂生产了全球产量的90%,为了了解一下这个行业,我做了以下分析
  15. windows 命令方式查找指定IP的MAC地址
  16. 5、实现登陆功能:如果用户名输入“tom”,密码“123”,提示登陆成功,否则提示输入错误,请重新输入!您还有XX次机会。 三次输入错误后将不可以再输入,并提示对不起,你的账号将被锁定
  17. 0926物体检测和数据集
  18. 机器人控制算法一之四轴机械臂正、逆运动学详解
  19. linux关于登录变成192login
  20. spring-boot-starter 自定义

热门文章

  1. 【图像】插值方法原理(最近邻,双线性,双三,兰索斯)
  2. 【编程】堆(heap)和栈(stack)的区别
  3. 解决sublime text无法安装插件问题
  4. [云炬创业基础笔记]第九章企业的法律形态测试8
  5. 云炬60s看世界20211119
  6. 云炬VB开发笔记 4选择结构
  7. 台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension
  8. 隐藏JqueryMobile中的Header与Footer
  9. C#中深拷贝对象的简单方法
  10. 如何用tadodataset.append