<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jason ---分享,共同進步

    激情成就夢想,努力創(chuàng)造未來
    隨筆 - 53, 文章 - 1, 評論 - 45, 引用 - 0
    數(shù)據(jù)加載中……

    POSTGIS常用函數(shù)

    Management Functions

    1,基本操作函數(shù)


    AddGeometryColumn(<schema_name>, <table_name>, <column_name>, <srid>, <type>, <dimension>)
    給一個已存在屬性數(shù)據(jù)表增加一個幾何字段(geomtry column)。schema_name 指表的模式的名字,srid 必須是一個整數(shù)指對應于 SPATIAL_REF_SYS 表,type必須是一個大寫的字符串,用來描述幾何類型,例如:'POLYGON' 或者 'MULTILINESTRING'。

    DropGeometryColumn(<schema_name>, <table_name>, <column_name>)
    從一個空間數(shù)據(jù)表中刪除一個幾何字段。

    ST_SetSRID(geometry, integer)
    給一個幾何對象(geometry)設置一個整型的SRID,對于在一個范圍內(nèi)的查詢非常有用。 
     
    2. Geometry Relationship Functions
       幾何空間數(shù)據(jù)關系函數(shù)

    ST_Distance(geometry, geometry)
    返回兩個幾何對象的距離(笛卡兒距離),不使用索引。 
     
    ST_DWithid(geometry, geometry, float)
    如果一個幾何對象(geometry)在另一個幾何對象描述的距離(float)內(nèi),返回TRUE。如果有索引,會用到索引。

    ST_Equals(geometry, geometry)
    如果兩個空間對象相等,則返回TRUE。用這個函數(shù)比用“=”更好,例如:
    equals('LINESTRING(0 0, 10 10)','LINESTRING(0 0, 5 5, 10 10)') 返回 TRUE。

    ST_Disjoint(geometry, geometry)
    如果兩個對象不相連,則返回TRUE。不要使用GeometryCollection作為參數(shù)。

    ST_Intersects(geometry, geometry)
    判斷兩個幾何空間數(shù)據(jù)是否相交,如果相交返回true,不要使用GeometryCollection作為參數(shù)。
    Intersects(g1, g2 ) --> Not (Disjoint(g1, g2 ))
    不使用索引可以用_ST_Intersects.

    ST_Touches(geometry, geometry)
    如果兩個幾何空間對象存在接觸,則返回TRUE。不要使用GeometryCollection作為參數(shù)。
    a.Touches(b) -> (I(a) intersection I(b) = {empty set} ) and (a intersection b) not empty
    不使用索引可以用_ST_Touches.

    ST_Crosses(geometry, geometry)
    如果兩個幾何空間對象存在交叉,則返回TRUE。不要使用GeometryCollection作為參數(shù)。
    不使用索引可以用_ST_Crosses.

    ST_Within(geometry A, geometry B)
    如果幾何空間對象A存在空間對象B中,則返回TRUE,不要使用GeometryCollection作為參數(shù)。
    不使用索引可以用_ST_Within

    ST_Overlaps(geometry, geometry)
    如果兩個幾何空間數(shù)據(jù)存在交迭,則返回 TRUE,不要使用GeometryCollection作為參數(shù)。
    不使用索引可以用_ST_Overlaps.

    ST_Contains(geometry A, geometry B)
    如果幾何空間對象A包含空間對象B,則返回 TRUE,不要使用GeometryCollection作為參數(shù)。
    這個函數(shù)類似于ST_Within(geometry B, geometry A)
    不使用索引可以用_ST_Contains.

    ST_Covers(geometry A, geometry B)
    如果幾何空間對象B中的所有點都在空間對象A中,則返回 TRUE。
    不要使用GeometryCollection作為參數(shù)。
    不使用索引可以用_ST_Covers.

    ST_CoveredBy(geometry A, geometry B)
    如果幾何空間對象A中的所有點都在空間對象B中,則返回 TRUE。

    3,Geometry Processing Functions
    幾何空間數(shù)據(jù)處理函數(shù)

    ST_Centroid(geometry)
    返回質(zhì)心點,就是根據(jù)幾何空間數(shù)據(jù),活動該幾何空間數(shù)據(jù)的中心點,返回一個空間點數(shù)據(jù).

    ST_Area(geometry)
    如果幾何空間數(shù)據(jù)為多邊形,或者多多邊形,則返回空間數(shù)據(jù)的外圍(返回類型double precision) ;

    ST_Length(geometry)
    這個曲線在其相關的空間參考長度(返回類型double precision) ;

    ST_PointOnSurface(geometry)
    一定在幾何空間線數(shù)據(jù)上的點,返回一個數(shù)據(jù)點

    ST_Buffer(geometry, double, [integer])
    buffer操作一個很有用函數(shù),
    這個函數(shù)的第一個參數(shù)是要操作的空間幾何數(shù)據(jù),第二個參數(shù)長度(距離),第三個參數(shù)為一個整型,
    這個函數(shù)返回一個空間數(shù)據(jù)類型,以當前第一個參數(shù)空間幾何數(shù)據(jù)為參考點,返回小于等于距離的空間

    幾何數(shù)據(jù)點,最后由這些點組成一個多邊形空間數(shù)據(jù),最后一個參數(shù)表示
    在組成一個1/4圓的有幾個點分隔。也就是說如果最好一個參數(shù)為8那么這個最后組成的多邊形就是32邊

    的多邊形,如果不指定這個參數(shù),系統(tǒng)默認的是8
    注意:第二個參數(shù),距離它的單位為空間數(shù)據(jù)單位(度),在運算時需要進行單位換算,最后轉(zhuǎn)換成度

    ,單位的換算關系如下:
    1英里= 63360 米
    1米=1/1852 海里
    1海里= 1/60度
    如果要進行具體的運算,需要進行一下單位換算,比如要求一個500米的范圍,那么應該是

    500*1/1852*1/60(度)

    ST_Envelope(geometry)
    這個函數(shù)可以返回mbr(空間最小外包矩形),傳入?yún)?shù)可以是point line polygon。


    ST_extent(geometry set)
    這個函數(shù)可以對一個空間數(shù)據(jù)集進行操作,返回一個最小包含矩形(mbr).
    如:SELECT EXTENT(GEOM) FROM GEOMTABLE GROUP BY CATEGORY


    ST_Difference(geometry A, geometry B)
    返回一個幾何空間數(shù)據(jù)A不同于空間數(shù)據(jù)B的幾何空間數(shù)據(jù)類型,不要使用GeometryCollection作為參數(shù)。
    也就是說,如果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)
    返回一個合并的幾何空間數(shù)據(jù),將兩個幾何空間數(shù)據(jù)合并為一個幾何空間數(shù)據(jù),或者GeometryCollection,不要使用GeometryCollection作為參數(shù)。


    4 ,Geometry Accessors

    ST_AsText(geometry)
    將幾何空間數(shù)據(jù),轉(zhuǎn)換成容易理解的空間數(shù)據(jù)文本格式,
    例如:
    (0,0 0,1 1,1 1,0 0,0)
    轉(zhuǎn)換后應該是這樣的結果 POLYGON(0 0,0 1,1 1,1 0,0 0)

    ST_SRID(geometry)
    返回當前幾何空間數(shù)據(jù)的SRID值

    ST_IsClosed(geometry)
    判斷幾何空間數(shù)據(jù)是否是閉合,就是判斷起始點和終點坐標是相同的,如果是相同的返回true,否則返回false.

    ST_IsRing(geometry)
    這個函數(shù)參數(shù)的對象是line,判斷起始點和終點坐標是否相同,
    如果閉合(這個曲線除了起始點和終點相同外,沒有其他相交點)怎返回true,否則false,

    ST_NumPoints(geometry)
    返回幾何空間數(shù)據(jù)lineString上的第一條線上點的個數(shù)。


    GeometryType(geometry)
    判斷幾何空間數(shù)據(jù)的類型。
    例如
    select GeometryType(geomfromText('MULTILINESTRING((1 1,2 3,3 4,3 1,2 1,1 1),(1 2,2 3,4 5))'))
    返回的類型為 MULTILINESTRING。


     

    posted on 2008-03-24 16:46 agun 閱讀(7829) 評論(5)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

    評論

    # re: POSTGIS常用函數(shù)[未登錄]  回復  更多評論   

    很好的文章,關注
    2008-03-25 09:30 | test

    # re: POSTGIS常用函數(shù)  回復  更多評論   

    很好的東西,看看
    2008-04-25 10:23 | 路過

    # re: POSTGIS常用函數(shù)  回復  更多評論   

    請問一下,hibernate里的HQL支持POSTGIS函數(shù)嗎????
    2008-07-15 10:01 | ads

    # re: POSTGIS常用函數(shù)  回復  更多評論   

    呵呵,HQL應該不支持,即使不是POSTGIS函數(shù),自定義函數(shù)也要自己聲明定義的。
    2008-07-15 11:28 | agun

    # re: POSTGIS常用函數(shù)  回復  更多評論   

    a nice article
    2009-06-18 22:19 | raymond
    主站蜘蛛池模板: 免费AA片少妇人AA片直播| a级片免费在线播放| 91成年人免费视频| 亚洲视频在线视频| 67194成手机免费观看| 久久久久久a亚洲欧洲AV| 免费人成激情视频在线观看冫| 亚洲真人无码永久在线| 久久国产乱子伦精品免费午夜| 亚洲伊人久久成综合人影院| 免费人人潮人人爽一区二区| 亚洲国产精品日韩| 久久久久久久久久久免费精品| 久久久亚洲精品蜜桃臀| 中文字幕版免费电影网站| 亚洲乱码中文字幕综合| 最近的2019免费中文字幕| 亚洲av无码一区二区三区网站| 无码av免费一区二区三区| 亚洲成人福利在线| 免费无码黄动漫在线观看| 美女黄频免费网站| 亚洲人成网7777777国产| 91精品全国免费观看含羞草| 精品亚洲AV无码一区二区| 真实乱视频国产免费观看| 一区二区三区免费高清视频| 亚洲产国偷V产偷V自拍色戒 | 国产性爱在线观看亚洲黄色一级片| a级毛片免费观看在线| 五月天网站亚洲小说| 一个人看www在线高清免费看| 亚洲AV无码一区二区乱子仑| 亚洲日韩av无码| 在线观看无码AV网站永久免费| 噜噜噜亚洲色成人网站| 亚洲春色在线视频| 精品久久免费视频| 美女视频黄a视频全免费网站色窝| 天堂亚洲国产中文在线| 精品亚洲一区二区三区在线播放 |