1. 程式人生 > >postgis常用函式介紹(一)

postgis常用函式介紹(一)

概述:

在進行地理資訊系統開發的過程中,常用的空間資料庫有esri的sde,postgres的postgis以及mySQL的mysql gis等等,在本文,給大家介紹的是有關postgis的一些常用函式的意思以及使用。

說明:

本文中所使用postgres的版本為9.4.0,你可從我的百度網盤獲取相關的安裝包,安裝包地址如下:

    postgres:http://pan.baidu.com/s/1o69WORK

    postgres空間擴充套件:http://pan.baidu.com/s/1c0fPfpe

先安裝postgres,在安裝postgres的空間擴充套件,軟體安裝好之後就開始瞭解下postgres的常用函式吧。

wkt簡介:

WKT(Well-known text)是一種文字標記語言,用於表示向量幾何物件、空間參照系統及空間參照系統之間的轉換。WKT可以表示的幾何物件包括:點,線,多邊形,TIN(不規則三角網)及多面體。可以通過幾何集合的方式來表示不同維度的幾何物件。
幾何物體的座標可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一個屬於線性參照系統的m值。
以下為幾何WKT字串樣例:
POINT(6 10)
LINESTRING(3 4,10 50,20 25)
POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))
MULTIPOINT(3.5 5.6, 4.8 10.5)
MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))
MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3)))
GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
POINT EMPTY
MULTIPOLYGON EMPTY

函式介紹:

1、如何找到postgres的函式

安裝完成之後,開啟pgAdmin,開啟之後,打擊點開如下圖:


注意:

圖中資料庫lzugis是一個空間資料庫,找到框架->public,展開public之後如下圖:


看到了吧,我們所要找的函式就在這個下面,此外,常用的還有資料表,觸發器函式等,函式展開之後截圖如下:


圖中,以下劃線開頭的表示系統函式,在平常應用中是使用不到的,不以下劃線開頭是咱們有可能用到的函式,所以,在使用的過程中可要仔細看看了。

2、常用函式

wkt和geometry的互換

postgres中,可以通過函式st_astext(geom)實現geometry到wkt的轉換,通過st_geomfromtext(wkt,wkid)實現wkt到geometry的轉換,具體使用如下:

st_astext(geom)


通常,我們通過此函式將資料庫中的物件取出來用以前臺的展示。

st_geomfromtext(wkt,wkid)


通常,我們通過此函式將前臺操作完的資料提交到後臺,進行入庫或者別的空間相關的操作,比如緩衝區分析,距離計算等。

獲取點的x和y座標值,獲取線/面的xmin,ymin,xmax,ymax

可以通過函式st_x(geom)和st_y(geom)函式獲取點物件的x和y座標值;


可以通過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)實現緩衝區的計算