Postgis常用函数
1,基本操作函数
AddGeometryColumn(<schema_name>, <table_name>,<column_name>, <srid>, <type>, <dimension>)
给一个已存在属性数据表增加一个几何字段(geomtrycolumn)。schema_name 指表的模式的名字,srid 必须是一个整数指对应于 SPATIAL_REF_SYS 表,type必须是一个大写的字符串,用来描述几何类型,例如:'POLYGON' 或者 'MULTILINESTRING'。
DropGeometryColumn(<schema_name>, <table_name>,<column_name>)
从一个空间数据表中删除一个几何字段。
ST_SetSRID(geometry, integer)
给一个几何对象(geometry)设置一个整型的SRID,对于在一个范围内的查询非常有用。
2. 几何空间数据关系函数
ST_Distance(geometry, geometry)
返回两个几何对象的距离(笛卡儿距离),不使用索引。
ST_DWithid(geometry, geometry, float)
如果一个几何对象(geometry)在另一个几何对象描述的距离(float)内,返回TRUE。如果有索引,会用到索引。
ST_Equals(geometry, geometry)
如果两个空间对象相等,则返回TRUE。用这个函数比用“=”更好,例如:
equals('LINESTRING(0 0, 10 10)','LINESTRING(0 0, 5 5, 10 10)') 返回 TRUE。
ST_Disjoint(geometry, geometry)
如果两个对象不相连,则返回TRUE。不要使用GeometryCollection作为参数。
ST_Intersects(geometry, geometry)
判断两个几何空间数据是否相交,如果相交返回true,不要使用GeometryCollection作为参数。
Intersects(g1, g2 ) --> Not (Disjoint(g1, g2 ))
不使用索引可以用_ST_Intersects.
ST_Touches(geometry, geometry)
如果两个几何空间对象存在接触,则返回TRUE。不要使用GeometryCollection作为参数。
a.Touches(b) -> (I(a) intersection I(b) = {empty set} ) and (a intersectionb) not empty
不使用索引可以用_ST_Touches.
ST_Crosses(geometry, geometry)
如果两个几何空间对象存在交叉,则返回TRUE。不要使用GeometryCollection作为参数。
不使用索引可以用_ST_Crosses.
ST_Within(geometry A, geometry B)
如果几何空间对象A存在空间对象B中,则返回TRUE,不要使用GeometryCollection作为参数。
不使用索引可以用_ST_Within
ST_Overlaps(geometry, geometry)
如果两个几何空间数据存在交迭,则返回 TRUE,不要使用GeometryCollection作为参数。
不使用索引可以用_ST_Overlaps.
ST_Contains(geometry A, geometry B)
如果几何空间对象A包含空间对象B,则返回 TRUE,不要使用GeometryCollection作为参数。
这个函数类似于ST_Within(geometry B, geometryA)
不使用索引可以用_ST_Contains.
ST_Covers(geometry A, geometry B)
如果几何空间对象B中的所有点都在空间对象A中,则返回 TRUE。
不要使用GeometryCollection作为参数。
不使用索引可以用_ST_Covers.
ST_CoveredBy(geometry A, geometry B)
如果几何空间对象A中的所有点都在空间对象B中,则返回 TRUE。
3,Geometry Processing Functions
几何空间数据处理函数
ST_Centroid(geometry)
返回质心点,就是根据几何空间数据,活动该几何空间数据的中心点,返回一个空间点数据.
ST_Area(geometry)
如果几何空间数据为多边形,或者多多边形,则返回空间数据的外围(返回类型double precision) ;
ST_Length(geometry)
这个曲线在其相关的空间参考长度(返回类型double precision) ;
ST_PointOnSurface(geometry)
一定在几何空间线数据上的点,返回一个数据点
ST_Buffer(geometry, double, [integer])
buffer操作一个很有用函数,
这个函数的第一个参数是要操作的空间几何数据,第二个参数长度(距离),第三个参数为一个整型,
这个函数返回一个空间数据类型,以当前第一个参数空间几何数据为参考点,返回小于等于距离的空间
几何数据点,最后由这些点组成一个多边形空间数据,最后一个参数表示
在组成一个1/4圆的有几个点分隔。也就是说如果最好一个参数为8那么这个最后组成的多边形就是32边
的多边形,如果不指定这个参数,系统默认的是8
注意:第二个参数,距离它的单位为空间数据单位(度),在运算时需要进行单位换算,最后转换成度
,单位的换算关系如下:
1英里= 63360 米
1米=1/1852 海里
1海里= 1/60度
如果要进行具体的运算,需要进行一下单位换算,比如要求一个500米的范围,那么应该是
500*1/1852*1/60(度)
ST_Envelope(geometry)
这个函数可以返回mbr(空间最小外包矩形),传入参数可以是point line polygon。
ST_extent(geometry set)
这个函数可以对一个空间数据集进行操作,返回一个最小包含矩形(mbr).
如:SELECT EXTENT(GEOM) FROMGEOMTABLE GROUP BY CATEGORY
ST_Difference(geometry A, geometry B)
返回一个几何空间数据A不同于空间数据B的几何空间数据类型,不要使用GeometryCollection作为参数。
也就是说,如果A为一个line,B也为一个line,那么他们返回的类型就是B把A分割的多线。
如:
select ST_AsEWKT(ST_Difference(geomfromText('LINESTRING(1 1,2 3,3 4,31)'),geomfromText('LINESTRING(2 0,2 2,5 2,3 1)')))
返回的MULTILINESTRING((1 1,2 3,3 4,32),(3 2,3 1))
如果是A和B都是一个POLYGON多边形,那么返回的就是多多边形,如果相交,那么返回的就是B把A分割,并且不再B中的多多边形。
select ST_AsEWKT(ST_Difference(geomfromText('POLYGON((1 1,2 3,3 4,3 1,11))'),geomfromText('POLYGON((2 0,2 2,5 2,1 3,2 0))')))
ST_Union(geometry, geometry)
返回一个合并的几何空间数据,将两个几何空间数据合并为一个几何空间数据,或者GeometryCollection,不要使用GeometryCollection作为参数。
ST_LineMerge(geometry)
合并为线
4 ,Geometry Accessors
ST_AsText(geometry)
将几何空间数据,转换成容易理解的空间数据文本格式,
例如:
(0,0 0,1 1,1 1,0 0,0)
转换后应该是这样的结果 POLYGON(0 0,0 1,1 1,1 0,0 0)
ST_SRID(geometry)
返回当前几何空间数据的SRID值
ST_IsClosed(geometry)
判断几何空间数据是否是闭合,就是判断起始点和终点坐标是相同的,如果是相同的返回true,否则返回false.
ST_IsRing(geometry)
这个函数参数的对象是line,判断起始点和终点坐标是否相同,
如果闭合(这个曲线除了起始点和终点相同外,没有其他相交点)怎返回true,否则false,
ST_NumPoints(geometry)
返回几何空间数据lineString上的第一条线上点的个数。
GeometryType(geometry)
判断几何空间数据的类型。
例如
select GeometryType(geomfromText('MULTILINESTRING((1 1,2 3,3 4,3 1,2 1,1 1),(12,2 3,4 5))'))
返回的类型为 MULTILINESTRING。
关于每个polygon过大,致使程序处理超级慢的问题解决:
用geometry ST_Scale(geometry geomA, float XFactor, float YFactor);函数,对原始geometry切割,插入到新的数据表中,这样就变成了对小polygon的处理
Postgis常用函数相关推荐
- (转)postgis常用函数介绍(一)
http://blog.csdn.net/gisshixisheng/article/details/47701237 概述: 在进行地理信息系统开发的过程中,常用的空间数据库有esri的sde,po ...
- (转)postgis常用函数介绍(二)
http://blog.csdn.net/gisshixisheng/article/details/47903151 概述: 书接上文,本文继续讲解Postgres中常用的空间函数的使用. 常用函数 ...
- postgis常用的函数
postgis常用的函数 常见函数:http://postgis.net/docs/reference.html ST_GeometryType(geometry) -- 返回几何图形的类 ...
- PostGIS几何类型及常用函数
1.PostGIS中的几何类型 1.1 WKB和WKT OGC 全称是开放地理空间信息联盟(Open Geospatial Consortium) 定义了两种描述几何对象的格式,分别是WKB(Well ...
- PostGIS中常用函数整理记录
文章目录 WKT中几何对象 版本控制函数 几何对象构造函数 几何对象输出函数 几何验证函数 空间参考系统功能函数 几何属性访问函数 几何测量函数 几何图形编辑函数 几何处理函数 仿射变换函数 边界框函 ...
- PostGIS中的常用函数
网上看到的最全最详细的PostGIS空间函数整理,搬运过来方便以后查看 PostGreSQL(五)PostGIS-常用函数 - huiyii - 博客园 (cnblogs.com)https://ww ...
- php内置常用函数是哪些,PHP常用函数有哪些
PHP常用函数有哪些 导语:PHP主要通过函数实现一些功能,那PHP常用函数有哪些呢?下面就由小编为大家介绍一下,欢迎大家阅读! 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2) ...
- Lua基本语法-书写规范以及自带常用函数
Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String O ...
- SQLserver 常用函数适用方法(转载)
SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值 ...
最新文章
- HTTPDNS成为移动互联网的标配–原因与原理解析(转)
- nessus国内用户不让免费使用了!
- 画股票图csdn_这个股票今天是要弄啥?
- IDEA商店无法打开的解决方法
- python读取shp文件,
- 21天学通C语言-学习笔记(1)
- java如何运行_如何运行java程序
- 基于Java+Springboot+Vue校园志愿者管理系统设计与实现
- 小程序如何隐藏滚动条
- 用户运营实战:打造流失用户召回体系
- java读取dcm影像文件_DCM医学影像文件的格式与读取方法分享
- OpenCV中使用Eigenfaces人脸识别器识别人脸实战(附Python源码)
- 侍魂服务器维护,侍魂手游8月5日停机维护更新公告
- 区块链软件开发公司 区块链的基本原理
- git合并某个或某些提交到其他分支
- 艾兰岛编辑器-玩家角色
- MxCAD5.2 2017.2.23更新
- 电影节 SDUT 2797
- 1190-1199: 习题6-2 排序
- 怎么批量给文件名编号?
热门文章
- VMware虚拟机提示“以独占方式锁定此配置文件失败”解决方案
- 有三AI第一批10个研究小组上线
- 【学习・求职必备】可谓是相当Awesomes了,这些综述类的github项目你不可错过!...
- 2022年全球及中国燃气供应系统 (FGSS)行业设施规模与十四五布局建设报告
- 全球及中国工业金刚石微米粉行业十四五规划研究与发展战略分析报告2021年版
- systemparametersinfo详细
- 第二章 数组名是一个指针常量吗?
- c语言猴子吃桃嵌套调用编程,C语言实现猴子吃桃问题(循环、递归两种方法)...
- 高级用户 java_java高级-基本
- python地图 两点距离_使用Python调用百度地图Api获取两地距离