postgis 常用函數

一.座標處理

    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.空間查詢

    以後整理
   




發佈了54 篇原創文章 · 獲贊 79 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章