`
manjingtou
  • 浏览: 121139 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

POSTGIS常用函数

阅读更多

Management Functions

1,基本操作函数


AddGeometryColumn(<schema_name>, <table_name>, <column_name>, <srid>, <type>, <dimension>)
给一个已存在属性数据表增加一个几何字段(geomtry column)。schema_name 指表的模式的名字,srid 必须是一个整数指对应于 SPATIAL_REF_SYS 表,type必须是一个大写的字符串,用来描述几何类型,例如:'POLYGON' 或者 'MULTILINESTRING'。

DropGeometryColumn(<schema_name>, <table_name>, <column_name>)
从一个空间数据表中删除一个几何字段。

ST_SetSRID(geometry, integer)
给一个几何对象(geometry)设置一个整型的SRID,对于在一个范围内的查询非常有用。 
 
2. Geometry Relationship Functions
   几何空间数据关系函数

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 intersection b) 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, geometry A)
不使用索引可以用_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) FROM GEOMTABLE 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,3 1)'),geomfromText('LINESTRING(2 0,2 2,5 2,3 1)')))
返回的MULTILINESTRING((1 1,2 3,3 4,3 2),(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,1 1))'),geomfromText('POLYGON((2 0,2 2,5 2,1 3,2 0))')))

ST_Union(geometry, geometry)
返回一个合并的几何空间数据,将两个几何空间数据合并为一个几何空间数据,或者GeometryCollection,不要使用GeometryCollection作为参数。


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),(1 2,2 3,4 5))'))
返回的类型为 MULTILINESTRING。


 

分享到:
评论
6 楼 manjingtou 2008-07-21  
呵呵,我用的就是8.3但是我没有使用 application Stack builder来安装postgis我就是自己安装的postgis1.3.2。函数是全的。
5 楼 MegRyan 2008-07-21  
我数据库里面有754个 但是没有AddGeometryColumn函数...

怎么添加函数?

PS:现在我安装了一个低版本的解决,可以用了。
4 楼 manjingtou 2008-07-21  
这样,兄弟,你可以看看的数据库中是否有这些函数,查看一下函数安装成功后默认的函数有688个。是否存在这个函数。
3 楼 MegRyan 2008-07-21  
最新版的postgreSql好像默认不带postGis
用自带的application Stack builder下的postGis

我的sql语句就是postGis生成的

而且前天就导入成功了..
2 楼 manjingtou 2008-07-21  
你的其他的postgis函数可以用吗?还是就这一个不能使用。
你在安装postgreSQL的时候,是否安装了postgis。如果没有安装postgis是不会有这些函数的。
1 楼 MegRyan 2008-07-21  
请问:我的postgreSql8.3一直提示说AddGeometryColumn函数不存在 是怎么回事呢?

相关推荐

    PostGIS空间函数简介

    1、转换函数 wkt和geom之间的相互转化 2、空间关系判断函数 常见的空间关系(Geometry Relationships)包括:Disjoint、Intersects、Touches、Crosses、Within、Contains、Overlaps、Relates。 3、空间操作函数 ...

    PostGIS中的常用函数.docx

    ### PostGIS中的常用函数 #### 一、概述 PostGIS是一种扩展了PostgreSQL数据库功能的扩展模块,使得数据库能够存储和处理地理空间数据。PostGIS提供了丰富的地理空间数据类型和函数,可以对地理空间数据进行复杂的...

    postgis-3.0.pdf

    #### 三、PostGIS常用函数及数据管理 PostGIS 提供了大量的函数来支持空间数据的操作,包括但不限于: 1. **GIS对象**: - **OpenGIS WKB 和 WKT**:定义了如何表示空间数据的二进制格式(WKB)和文本格式(WKT)...

    cpp-常用的PostGIS的一些函数使用方法以及自定义函数

    常用的PostGIS的一些函数使用方法以及自定义函数,比如:pg连接oracle、pg连接sqlserver、导出csv、导入csv、查询XX米范围内数据、模糊查询、热力图聚合、生成扇形、生成栅格、生成泰森多边形、生成蜂巢图、裁剪...

    postgis-2.0.4文档

    PostGIS 支持其中的第三部分,即空间类型和函数。 **4.2 PostGIS 地理位置类型** **4.2.1 地理位置基础** 地理位置类型是 PostGIS 中一种特殊的数据类型,用于表示地球表面上的对象。它支持经纬度坐标系,能够更...

    PostGIS空间数据表建立及Cesium可视化空间数据.docx

    三、PostGIS SQL空间关系常用函数 PostGIS提供了许多有用的函数来处理空间数据,以下是常用的空间关系函数: 1. 几何类型转换函数: * st_geomfromtext(wkt):将WKT字符串转换为Geometry类型 * st_astext...

    postgis学习笔记

    PostGIS 使得用户可以在 PostgreSQL 中存储和管理大量的空间数据,并提供了许多有用的空间分析函数。 2. PostgreSQL 的配置文件及用户权限 在使用 PostGIS 之前,需要先配置 PostgreSQL 的配置文件和用户权限。...

    postgis in action

    **空间索引:** R-tree是PostGIS中最常用的空间索引类型,它可以通过将空间对象组织成层次结构,显著提高查询效率。 **表设计:** 在设计空间数据表时,需要考虑数据的属性信息以及几何类型的选择。例如,对于记录...

    postgis 1.5.1 pdf

    - **GiST 索引**:GiST (Generalized Search Tree) 索引是 PostGIS 中常用的一种索引类型,可以显著提高空间查询的效率。 - **使用索引**:介绍了如何在查询中利用索引来加速查询。 ##### 4.7 复杂查询 - **利用...

    postgis 教程

    PostGIS提供了丰富的几何函数,这些函数可以帮助用户执行复杂的几何运算和分析。 1. **几何操作函数:** 如`ST_Buffer`用于创建缓冲区、`ST_Intersection`用于求交集等。 2. **测量函数:** `ST_Distance`用于计算...

    postgis-2009.pdf

    **PostGIS**支持丰富的空间函数,这些函数可以分为以下几个类别: - **构造函数(Construction Functions)**:用于创建新的几何对象。 - **序列化函数(Serialisation Functions)**:用于将几何对象转换为特定格式的...

    PostGis技术文档 - IT_BULL.pdf

    PostGIS能够通过空间函数支持包括空间关系运算、空间度量、地理编码、空间聚集等在内的丰富空间操作。 在实际使用PostGIS之前,需要进行安装。PostGIS可以在Windows和Linux操作系统上安装。在Windows下,安装过程...

    PostGIS关于批量空间数据处理的经验.pptx

    **PostGIS常用数据处理功能简介** 1. **pgsql2shp与shp2pgsql**:用于在PostGIS数据库和SHP文件之间导入导出数据。 2. **SHP GUI工具**:如QGIS、ArcGIS等,提供图形界面进行数据操作。 3. **元数据读写**:PostGIS...

    geoserver通过rest自动发布postigs图层

    PostGIS支持复杂的空间函数和操作,是GIS领域常用的空间数据库系统。 3. **REST API**:REST API是一种轻量级的、基于HTTP协议的Web服务设计模式。GeoServer的REST API允许用户通过HTTP方法(GET、POST、PUT、...

    AV PostGIS Connection Extension-开源

    3. shapelib.dll:这是一个动态链接库文件,可能包含了处理Shapefile格式数据的函数,Shapefile是GIS领域常用的矢量数据格式。 4. README.txt:通常提供关于软件的基本信息、安装指南或使用提示。 5. tilecacheindex...

    Node.js-非阻塞PostgreSQL的node.js客户端

    在 Node.js 中,一个常用的非阻塞 PostgreSQL 客户端库是 `pg`。你可以通过 npm(Node.js 包管理器)来安装它: ``` npm install pg ``` 2. **连接数据库** 使用 `pg` 库,你可以创建一个连接池或直接建立连接...

    藏经阁-PostgresChina2018_冯慧媛_GIS地理信息-postgres在时空大数据方面的应用.pdf

    文章列举了一些常用的PostGIS函数,如St_transform()用于坐标系转换,St_dwithin()用于判断两点间距离,St_within()判断一个几何对象是否在另一个内,St_geomfromtext()则用于从文本创建几何对象。 在时空数据处理...

Global site tag (gtag.js) - Google Analytics