postgis 常用函数

来源:互联网 发布:java md5加密 32位 编辑:程序博客网 时间:2024/06/02 23:52

一.坐标处理

    1.ST_AsText(geometry g1); 取得坐标。例如:ST_AsText(geom)值为: POINT(118.84639183778 37.4281744123688)

    2.ST_GeomFromText(text WKT, integersrid);将坐标转化成geom。例如:ST_GeomFromText('point(118.84639183778 37.4281744123688)' ,4326);

    3.ST_SetSRID(geometry, integer)给一个几何对象(geometry)设置一个整型的SRID,对于在一个范围内的查询非常有用。

    4.ST_Distance(geometry, geometry)返回两个几何对象的距离(笛卡尔),不使用索引。

    5.ST_DWithin(geometryA, geometryB, double b  )如果一个几何对象(geometryA)在另一个几何对象(geometryB)描述的距离(double)内,返回TRUE。b:单位为  度  。

    6.ST_Disjoint(geometry, geometry)如果两个对象不相连,则返回TRUE

    7.ST_Crosses(geometry, geometry)如果两个几何空间对象存在交叉,则返回TRUE

    8.ST_Touches(geometry, geometry)如果两个几何空间对象存在接触,则返回TRUE

    9.ST_Crosses(geometry, geometry)如果两个几何空间对象存在交叉,则返回TRUE

   10.ST_Within(geometry A, geometry B)如果几何空间对象A存在空间对象B,则返回TRUE。

   11.ST_Overlaps(geometry, geometry)如果两个几何空间数据存在交迭,则返回 TRUE。

   12.ST_Contains(geometry A, geometry B)如果几何空间对象A包含空间对象B,则返回 TRUE。

   13.ST_Covers(geometry A, geometry B)如果几何空间对象B中的所有点都在空间对象A,则返回 TRUE

   14.ST_Buffer(geometry, doubleradius_of_buffer)返回小于等于距离的空间。

   15.GeometryType(geometry)判断几何空间数据的类型(POINT、LINESTRING、POLYGON、MULTIPOINT、 MULTILINESTRING 、MULTIPOLYGON)。

二.空间处理与分析

     单位的换算关系如下:
     1
英里= 63360
    
=1/1852海里
    
海里= 1/60
     果要进行具体的运算,需要进行一下单位换算,比如要求一个1000米的范围,那么应该是  :1000*1/1852*1/60(度)

    1.缓冲区分析(点、线、面),下面以点举例。

        (1)取得查询1000米的缓冲区:select * from table ST_AsText(ST_Buffer(ST_GeomFromText('POINT(118.84639183778 37.4281744123688)'), 0.008999280));

       结果:POLYGON((118.85539111778 37.4281744123688,118.855218199138 37.4264187399357,118.854706088379 37.4247305370096,118.853874465633 37.4231746802822,118.852755289694 37.421810960455,118.851391569867 37.4206917845162,118.849835713139 37.4198601617695,118.848147510213 37.4193480510106,118.84639183778 37.4191751323688,118.844636165347 37.4193480510106,118.842947962421 37.4198601617695,118.841392105693 37.4206917845162,118.840028385866 37.421810960455,118.838909209927 37.4231746802822,118.838077587181 37.4247305370096,118.837565476422 37.4264187399357,118.83739255778 37.4281744123688,118.837565476422 37.4299300848019,118.838077587181 37.431618287728,118.838909209927 37.4331741444554,118.840028385866 37.4345378642826,118.841392105693 37.4356570402214,118.842947962421 37.4364886629681,118.844636165347 37.437000773727,118.84639183778 37.4371736923688,118.848147510213 37.437000773727,118.849835713139 37.4364886629681,118.851391569867 37.4356570402214,118.852755289694 37.4345378642826,118.853874465633 37.4331741444554,118.854706088379 37.431618287728,118.855218199138 37.4299300848019,118.85539111778 37.4281744123688))

     (2)查询分析举例该点(118.84639183778 37.4281744123688)100米内的街道:select  streetname from  layer where   ST_DWithin(geom,ST_GeomFromText('point(118.84639183778 37.4281744123688)'),0.0008999280);

 2.空间查询

    以后整理
   




原创粉丝点击