PostGIS空間查詢語言特性_第1頁
PostGIS空間查詢語言特性_第2頁
PostGIS空間查詢語言特性_第3頁
PostGIS空間查詢語言特性_第4頁
PostGIS空間查詢語言特性_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、lPostGIS簡介lPostGIS特性lPostGIS讀寫數(shù)據(jù)lPostGIS查詢語言lPostGIS函數(shù)lPostGIS擴(kuò)展函數(shù) 1986年,加州大學(xué)伯克利分校的Michael Stonebraker教授領(lǐng)導(dǎo)了Postgres的項(xiàng)目,它是PostgreSQL的前身。隨后出現(xiàn)了PostGIS,PostGIS是對象關(guān)系型數(shù)據(jù)庫系統(tǒng)PostgreSQL的一個(gè)擴(kuò)展,它的出現(xiàn)讓人們開始重視基于數(shù)據(jù)庫管理系統(tǒng)的空間擴(kuò)展方式,而且使PostGIS有望成為今后管理空間數(shù)據(jù)的主流技術(shù)。 在兩大開源數(shù)據(jù)庫產(chǎn)品的對比中,一般認(rèn)為MySQL速度更快,所以得到更為廣泛的使用;而PostgreSQL性能更為先進(jìn),Po

2、stgreSQL 提供很多 MySQL 目前所不支持的特性,比如觸發(fā)器、視圖、存儲(chǔ)過程等等,在記錄數(shù)超千萬之后性能表現(xiàn)尤其出色。lPostGIS是對象關(guān)系型數(shù)據(jù)庫系統(tǒng)PostgreSQL的一個(gè)擴(kuò)展。lPostGIS提供如下空間信息服務(wù)功能:空間對象、空間索引、空間操作函數(shù)和空間操作符。lPostGIS遵循OpenGIS的規(guī)范。lPostGIS的版權(quán)被納入到GNU的GPL中,任何人可以自由得到PostGIS的源碼并對其做研究和改進(jìn)。支持OpenGIS中所有空間數(shù)據(jù)類型: 點(diǎn)(POINT)、線(LINESTRING)、多邊形(POLYGON)、多點(diǎn)(MULTIPOINT)、多線(MULTILINE

3、STRING)、多多邊形(MULTIPOLYGON)和集合對象集(GEOMETRYCOLLECTION)等。PostGIS支持所有的對象表達(dá)方法,比如WKT和WKB。lExamples of WKT:lPOINT(0 0) 點(diǎn)lLINESTRING(0 0,1 1,1 2) 線lPOLYGON(0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1) 面lMULTIPOINT(0 0,1 2) 多點(diǎn)lMULTILINESTRING(0 0,1 1,1 2),(2 3,3 2,5 4) 多線lMULTIPOLYGON(0 0,4 0,4 4,0 4,0 0),(

4、1 1,2 1,2 2,1 2,1 1), (-1 -1,-1 -2,-2 -2,-2 -1,-1 -1) 多面lGEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4) 幾何集合lEWKT和EWKB相比OGC WKT和WKB格式主要的擴(kuò)展有3DZ、3DM、4D坐標(biāo)和內(nèi)嵌空間參考支持。l以下以EWKT語句定義了一些幾何對象:lPOINT(0 0 0) 3D點(diǎn)lSRID=32632;POINT(0 0) 內(nèi)嵌空間參考的點(diǎn)lPOINTM(0 0 0) 帶M值的點(diǎn)lPOINT(0 0 0 0) 帶M值的3D點(diǎn)lSRID=4326;MULTIPOINTM(0

5、0 0,1 2 1) 內(nèi)嵌空間參考的帶M值的多點(diǎn)l以下語句可以使用EWKT格式插入一個(gè)點(diǎn)要素到一個(gè)表中:lINSERT INTO table ( SHAPE, NAME )lVALUES ( GeomFromEWKT(SRID=4326;POINTM(116.39 39.9 10), 北京 )lCanonical格式是16進(jìn)制編碼的幾何對象,直接用SQL語句查詢出來的就是這種格式。SQL-MM格式:SQL-MM格式定義了一些插值曲線,這些插值曲線和EWKT有點(diǎn)類似,也支持3DZ、3DM、4D坐標(biāo),但是不支持嵌入空間參考。以下以SQL-MM語句定義了一些插值幾何對象:CIRCULARSTRING

6、(0 0, 1 1, 1 0) 插值圓弧COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1) 插值復(fù)合曲線CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1) 曲線多邊形MULTICURVE(0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4) 多曲線MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1)

7、,(10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11) 多曲面 讀寫PostGIS目前主要有以下四種方式: 1. 使用psql語言 select * from test1; select myID,AsText(pt) from test1; select Distance(pt, POINT(0 0) from test1; 2.使用一些小工具 有兩個(gè)小的轉(zhuǎn)換工具,一是shp2pg;一是ogr2ogr。3.在其他GIS軟件中讀寫PostGIS數(shù)據(jù) 比如在QGIS中,能夠打開PostGIS圖層,還有SPIT插件可以把 Sha

8、pe文件輸入到PostGIS數(shù)據(jù)庫中。4.利用接口在應(yīng)用程序中讀寫PostGIS數(shù)據(jù)表的建立Creating a Spatial TableCreating a Spatial Table 在PostGIS中創(chuàng)建一個(gè)包含幾何字段的空間表分為2步:第一步創(chuàng)建一個(gè)一般表,第二步給這個(gè)表添加幾何字段。 在test模式下創(chuàng)建一個(gè)名為cities的一般表:create table test .cities (id int4, name varchar(20) 再給cities添加一個(gè)名為shape的幾何字段(二維點(diǎn)):select Add Geometry Column(test, cities, sh

9、ape, 4326, POINT, 2)Loading GIS DataLoading GIS DataRetrieving GIS DataRetrieving GIS DataPostGISPostGIS中的空間索引中的空間索引 數(shù)據(jù)庫數(shù)據(jù)庫對多維數(shù)據(jù)的存取有兩種索引方案,對多維數(shù)據(jù)的存取有兩種索引方案,R-TreeR-Tree和和GiSTGiST(Generalized Search TreeGeneralized Search Tree),在),在PostgreSQLPostgreSQL中的中的GiSTGiST比比R-TreeR-Tree的健的健壯性更好,因此壯性更好,因此PostGI

10、SPostGIS對空間數(shù)據(jù)的索引一般采用對空間數(shù)據(jù)的索引一般采用GiSTGiST實(shí)現(xiàn)實(shí)現(xiàn)。 以下以下的語句給的語句給sdesde模式中的模式中的citiescities表添加了一個(gè)空間表添加了一個(gè)空間索引索引shape_index_citiesshape_index_cities,在,在pgAdminpgAdmin中也可以通過圖形界面完成相同的功能。中也可以通過圖形界面完成相同的功能。CREATE INDEX CREATE INDEX shape_index_citiesshape_index_citiesON ON sde.citiessde.citiesUSING gistUSING gi

11、st(shape(shape); ); 另外另外要注意的是,空間索引只有在進(jìn)行基于邊界范圍的查詢時(shí)才起作用要注意的是,空間索引只有在進(jìn)行基于邊界范圍的查詢時(shí)才起作用,比如比如“&”操作。操作。 Examples of Spatial SQLExamples of Spatial SQL: 1. What is the total length of all roads, expressed in kilometers?SELECT sum(ST_Length(the_geom)/1000 AS km_roads FROM bc_roads;km_roads-70842.12430396

12、43(1 row)Examples of Spatial SQLExamples of Spatial SQL: 2. How large is the city of xxx, in hectares?SELECTST_Area(the_geom)/10000 AS hectaresFROM bc_municipalityWHERE name = xxx;hectares-32657.9103824927(1 row)PostGIS函數(shù)大致可以分為以下四類:l字段處理函數(shù) AddGeometryColumn為已有的數(shù)據(jù)表增加一個(gè)地理幾何數(shù)據(jù)字段; DropGeometryColumn刪除一個(gè)

13、地理數(shù)據(jù)字段的; SetSRID設(shè)置SRID值 Probe_Geometry_Columns()檢查數(shù)據(jù)庫幾何字段并在geometry_columns中歸檔 PostGIS函數(shù)大致可以分為以下四類:l幾何關(guān)系函數(shù) 目前共有13個(gè),分別是:獲取兩個(gè)幾何對象間的距離ST_Distance( )判斷兩個(gè)幾何對象是否相等ST_Equals( )判斷兩個(gè)幾何對象是否分離ST_Disjoint( )判斷兩個(gè)幾何對象是否相交ST_Intersects ()判斷兩個(gè)幾何對象的邊緣是否接觸ST_Touches( )判斷兩個(gè)幾何對象是否互相穿過ST_Crosses( )判斷A是否被B包含ST_Within( )判

14、斷兩個(gè)幾何對象是否是重疊ST_Overlaps( )判斷A是否包含BST_Contains( )判斷A是否覆蓋BST_Covers( )判斷A是否被B所覆蓋ST_CoveredBy( )通過DE-9IM 矩陣判斷兩個(gè)幾何對象的關(guān)系是否成立ST_Relate( )獲得兩個(gè)幾何對象的關(guān)系(DE-9IM矩陣)ST_Relate( )PostGIS函數(shù)大致可以分為以下四類: 幾何分析函數(shù) 這類函數(shù)目前共有12個(gè),分別是: Centroid, Area, Lenth, PointOnSurface, Boundary, Buffer, ConvexHull, Intersection, SymDiffe

15、rence, Difference, GeomUnion, MemGeomUnion 讀寫函數(shù) 這類函數(shù)很多,主要是用于在各種數(shù)據(jù)類型之間的轉(zhuǎn)換,尤其是在于Geometry數(shù)據(jù)類型與其他如字符型等數(shù)據(jù)類型之間的轉(zhuǎn)換,函數(shù)名如AsText、GeomFromText等。l管理函數(shù):刪除一個(gè)空間表(包括geometry_columns中的記錄) DropGeometryTable(, )更新空間表的空間參考 UpdateGeometrySRID(, , , )更新空間表的統(tǒng)計(jì)信息 update_geometry_stats(, )l幾何對象創(chuàng)建:Dump:轉(zhuǎn)儲(chǔ) ST_GeomFromEWKT(tex

16、t)ST_GeomFromEWKB(bytea)ST_MakePoint(, , , )ST_MakePointM(, , )ST_MakeBox2D(, )l幾何對象編輯:給幾何對象添加一個(gè)邊界,會(huì)使查詢速度加快 ST_AddBBOX(geometry)刪除幾何對象的邊界 ST_DropBBOX(geometry)添加、刪除、設(shè)置點(diǎn) ST_AddPoint(linestring, point, )l線性參考:根據(jù)location(0-1)獲得該位置的點(diǎn) ST_line_interpolate_point(linestring, location)獲取一段線 ST_line_substring(linestring, start, end)根據(jù)點(diǎn)獲取location(0-1) ST_line_locate_point(LineString, Point)根據(jù)量測值獲得幾何對象 ST_locate_along_measure(geometry, float8)根據(jù)量測值區(qū)間獲得幾何對象集合 ST_locate_between_measures(geometry, float8, float8)l雜項(xiàng)功能函數(shù):幾何對象的摘要 ST_Summary(geometry)幾何對象的邊界 ST_box2d(geometry)ST_box3d(g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論