PostGIS 操作geometry方法

2021-09-10 07:19:59 字數 4495 閱讀 4849

point(0 0) ——點

linestring(0 0,1 1,1 2) ——線

polygon((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ——面

multipoint(0 0,1 2) ——多點

multilinestring((0 0,1 1,1 2),(2 3,3 2,5 4)) ——多線

multipolygon(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ——多面

geometrycollection(point(2 3),linestring((2 3,3 4))) ——幾何集合

wkt轉geometry st_geomfromtext(wkt,wkid)

geometry轉wkt st_astext(geom)

獲取點物件x、y座標值 st_x(geom)、st_y(geom)

獲取線/面物件四至 st_xmin(geom)、st_ymin(geom)、st_xmax(geom)、st_ymax(geom)

計算兩點之間距離 st_distance(geom,geom) / st_distance(wkt,wkt)

計算線的長度 st_length(geom) / st_length(wkt)

計算面積 st_area(geom) / st_area(wkt)

緩衝區計算 st_buffer(geom,distance) / st_buffer(wkt,distance)

新增幾何字段 addgeometrycolumn(, , , , , )

刪除幾何字段 dropgeometrycolumn(, , )

檢查資料庫幾何欄位並在geometry_columns中歸檔 probe_geometry_columns()

給幾何物件設定空間參考(在通過乙個範圍做空間查詢時常用) st_setsrid(geometry, integer)

獲取兩個幾何物件間的距離 st_distance(geometry, geometry)

如果兩個幾何物件間距離在給定值範圍內,則返回true st_dwithin(geometry, geometry, float)

判斷兩個幾何物件是否相等

(比如linestring(0 0, 2 2)和linestring(0 0, 1 1, 2 2)是相同的幾何物件) st_equals(geometry, geometry)

判斷兩個幾何物件是否分離 st_disjoint(geometry, geometry)

判斷兩個幾何物件是否相交 st_intersects(geometry, geometry)

判斷兩個幾何物件的邊緣是否接觸 st_touches(geometry, geometry)

判斷兩個幾何物件是否互相穿過 st_crosses(geometry, geometry)

判斷a是否被b包含 st_within(geometry a, geometry b)

判斷兩個幾何物件是否是重疊 st_overlaps(geometry, geometry)

判斷a是否包含b st_contains(geometry a, geometry b)

判斷a是否覆蓋 b st_covers(geometry a, geometry b)

判斷a是否被b所覆蓋 st_coveredby(geometry a, geometry b)

通過de-9im 矩陣判斷兩個幾何物件的關係是否成立 st_relate(geometry, geometry, intersectionpatternmatrix)

獲得兩個幾何物件的關係(de-9im矩陣) st_relate(geometry, geometry)

獲取幾何物件的中心 st_centroid(geometry)

面積量測 st_area(geometry)

長度量測 st_length(geometry)

返回曲面上的乙個點 st_pointonsu***ce(geometry)

獲取邊界 st_boundary(geometry)

獲取緩衝後的幾何物件 st_buffer(geometry, double, [integer])

獲取多幾何物件的外接物件 st_convexhull(geometry)

獲取兩個幾何物件相交的部分 st_intersection(geometry, geometry)

將經度小於0的值加360使所有經度值在0-360間 st_shift_longitude(geometry)

獲取兩個幾何物件不相交的部分(a、b可互換) st_symdifference(geometry a, geometry b)

從a去除和b相交的部分後返回 st_difference(geometry a, geometry b)

返回兩個幾何物件的合併結果 st_union(geometry, geometry)

返回一系列幾何物件的合併結果 st_union(geometry set)

用較少的記憶體和較長的時間完成合併操作,結果和st_union相同 st_memunion(geometry set)

獲取幾何物件的wkt描述 st_astext(geometry)

獲取幾何物件的wkb描述 st_asbinary(geometry)

獲取幾何物件的空間參考id st_srid(geometry)

獲取幾何物件的維數 st_dimension(geometry)

獲取幾何物件的邊界範圍 st_envelope(geometry)

判斷幾何物件是否為空 st_isempty(geometry)

判斷幾何物件是否不包含特殊點(比如自相交) st_is******(geometry)

判斷幾何物件是否閉合 st_isclosed(geometry)

判斷曲線是否閉合並且不包含特殊點 st_isring(geometry)

獲取多幾何物件中的物件個數 st_numgeometries(geometry)

獲取多幾何物件中第n個物件 st_geometryn(geometry,int)

獲取幾何物件中的點個數 st_numpoints(geometry)

獲取幾何物件的第n個點 st_pointn(geometry,integer)

獲取多邊形的外邊緣 st_exteriorring(geometry)

獲取多邊形內邊界個數 st_numinteriorrings(geometry)

同上 st_numinteriorring(geometry)

獲取多邊形的第n個內邊界 st_interiorringn(geometry,integer)

獲取線的終點 st_endpoint(geometry)

獲取線的起始點 st_startpoint(geometry)

獲取幾何物件的型別 geometrytype(geometry)

類似上,但是不檢查m值,即pointm物件會被判斷為point st_geometrytype(geometry)

獲取點的x座標 st_x(geometry)

獲取點的y座標 st_y(geometry)

獲取點的z座標 st_z(geometry)

獲取點的m值 st_m(geometry)

參考語義:

text:wkt

wkb:wkb

geom:geometry

m:multi

bd:buildarea

coll:collection st_geomfromtext(text,)

st_pointfromtext(text,)

st_linefromtext(text,)

st_linestringfromtext(text,)

st_polyfromtext(text,)

st_polygonfromtext(text,)

st_mpointfromtext(text,)

st_mlinefromtext(text,)

st_mpolyfromtext(text,)

st_geomcollfromtext(text,)

st_geomfromwkb(bytea,)

st_geometryfromwkb(bytea,)

st_pointfromwkb(bytea,)

st_linefromwkb(bytea,)

st_linestringfromwkb(bytea,)

st_polyfromwkb(bytea,)

st_polygonfromwkb(bytea,)

st_mpointfromwkb(bytea,)

st_mlinefromwkb(bytea,)

st_mpolyfromwkb(bytea,)

st_geomcollfromwkb(bytea,)

st_bdpolyfromtext(text wkt, integer srid)

st_bdmpolyfromtext(text wkt, integer srid)

PostGIS教程二 PostGIS的安裝

目錄 二 安裝postgresql 三 安裝postgis 在安裝postgis前首先必須安裝postgresql,然後在安裝好的stack builder中選擇安裝postgis元件。這裡使用的postgresql版本是9.6。安裝postgresql安裝完成後,提示執行stack builder...

PostGIS教程二 PostGIS的安裝

目錄 二 安裝postgresql 三 安裝postgis 在安裝postgis前首先必須安裝postgresql,然後在安裝好的stack builder中選擇安裝postgis元件。這裡使用的postgresql版本是9.6。安裝postgresql安裝完成後,提示執行stack builder...

POSTGIS常用函式

1,基本操作函式 addgeometrycolumn 給乙個已存在屬性資料表增加乙個幾何字段 geomtry column schema name 指表的模式的名字,srid 必須是乙個整數指對應於 spatial ref sys 表,type必須是乙個大寫的字串,用來描述幾何型別,例如 polyg...