[第一篇] PostGIS:“我讓PG更完美”

About PostGIS

PostGIS adds support for geographic objects to the PostgreSQL object-relational database. In effect, PostGIS "spatially enables" the PostgreSQL server, allowing it to be used as a backend spatial database for geographic information systems (GIS), much like ESRI's SDE or Oracle's Spatial extension. PostGIS follows the OpenGIS "Simple Features Specification for SQL" and has been certified as compliant with the "Types and Functions" profile.

PostGIS development was started by Refractions Research as a project in open source spatial database technology. PostGIS is released under the GNU General Public License. PostGIS continues to be developed by a group of contributors led by a Project Steering Committee and new features continue to be added.

譯文:

PostGIS 向 PostgreSQL 對象關(guān)系數(shù)據(jù)庫添加了對地理對象的支持。 實際上,PostGIS 在空間上啟用了 PostgreSQL 服務(wù)器,使其可以用作地理信息系統(tǒng) (GIS) 的后端空間數(shù)據(jù)庫,就像 ESRI 的 SDE 或 Oracle 的 Spatial 擴展一樣。 PostGIS 遵循 OpenGIS“SQL 的簡單特征規(guī)范”,并已被認證為符合“類型和函數(shù)”配置文件。

PostGIS 的開發(fā)由 Refractions Research 作為開源空間數(shù)據(jù)庫技術(shù)中的一個項目啟動。 PostGIS 是在 GNU 通用公共許可證下發(fā)布的。 PostGIS 繼續(xù)由項目指導(dǎo)委員會領(lǐng)導(dǎo)的一組貢獻者開發(fā),并繼續(xù)添加新功能。

友情提示:本文篇幅較長,共分為5篇文章,幾乎涵蓋了PostGIS的所有內(nèi)容,PostGIS作為PostgreSQL的重要插件,是目前國內(nèi)外GIS行業(yè)的首選數(shù)據(jù)庫的主要推動力。如果你感興趣的話,可以先收藏,再慢慢學(xué)習(xí)~

DownLoad

在下面的網(wǎng)址中,你可以選擇下載適合你的windows版本,如果你是用于生產(chǎn)環(huán)境,建議盡量不要選擇最近的release版本。在下載安裝PostGIS插件之前,你需要先具有PostgreSQL的運行環(huán)境。

在下面的網(wǎng)址中,我們在自己使用的PostGreSQL版本里面,選擇PostGIS插件,因為這些是被PostGIS官方團隊所驗證和支持的。

http://download.osgeo.org/postgis/windows/

在這個網(wǎng)址,你可以選擇適合你的其他版本安裝包,也包括免安裝的壓縮包形式文件。

http://postgis.net/install/

安裝

下載完成之后,進行安裝;

PostGIS的安裝很簡單,一路下一步,但是需要注意的是,PostGIS插件需要和PostgreSQL安裝在同一個目錄(也就是PostGIS需要選擇PostGreSQL的根目錄進行安裝)。

安裝過程當(dāng)中的空間數(shù)據(jù)庫可以創(chuàng)建也可以不創(chuàng)建,這個根據(jù)自己的情況來看,如果你要創(chuàng)建空間數(shù)據(jù)庫的話,就需要連接到當(dāng)前的PostgreSQL。

準備PostGIS

  1. 在開始菜單欄找到PostGreSQL,點擊里面的pgAdmin4;
  2. 點擊左上角的Server,根據(jù)提示輸入連接信息進行登錄;
  3. 登錄上之后,創(chuàng)建一個數(shù)據(jù)庫實例,并新建數(shù)據(jù)庫;
  4. 依次點擊:數(shù)據(jù)庫名-Extensions-右擊-create-extension,輸入:postgis;

使用PostGIS的前置知識

1. 常見的PostGIS支持的GIS對象

這些創(chuàng)建GIS對象的語法要熟悉,實際工作中很容易忘~

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">? 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)) //幾何集合 </pre>

2. SRID——存儲空間對象的地理坐標系的編號,其輸入輸出可通過以下接口進行

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">bytea WKB = ST_AsBinary(geometry); text WKT = ST_AsText(geometry); geometry = ST_GeomFromWKB(bytea WKB, SRID); geometry = ST_GeometryFromText(text WKT, SRID); </pre>

示例

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">SELECT (ST_GeomFromText('POINT(-126.4 45.32)', 312), 'A Place'); 輸出如下: (0101000020380100009A99999999995FC0295C8FC2F5A84640,"A Place") </pre>

3. 支持3D GIS對象的語法

PostGIS EWKB/EWKT增加了對3DM、3DZ、4D坐標的支持和嵌入式SRID信息。

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">? POINT(0 0 0) -- XYZ ? SRID=32632;POINT(0 0) -- XY with SRID ? POINTM(0 0 0) -- XYM ? POINT(0 0 0 0) -- XYZM ? SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID ? MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1)) ? POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)) ? MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0))) ? GEOMETRYCOLLECTIONM( POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5) ) ? MULTICURVE( (0 0, 5 5), CIRCULARSTRING(4 0, 4 4, 8 4) ) ? POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) ) ? TRIANGLE ((0 0, 0 9, 9 0, 0 0)) ? TIN( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)) ) </pre>

3DM、3DZ、4D之間的轉(zhuǎn)換接口:

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">bytea EWKB = ST_AsEWKB(geometry); text EWKT = ST_AsEWKT(geometry); geometry = ST_GeomFromEWKB(bytea EWKB); geometry = ST_GeomFromEWKT(text EWKT) </pre>

示例

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">SELECT 'SRID=4;POINT(0 0)'::geometry; 輸出如下: 01010000200400000000000000000000000000000000000000 </pre>

4. 彎曲的幾何實體

SQL多媒體應(yīng)用空間規(guī)范擴展了SQL規(guī)范的簡單功能,定義了一些 圓弧插值曲線。 SQL-MM的定義包括3DM、3DZ和4D坐標,但不允許嵌入SRID信息。 Well-Known Text擴展還沒有被完全支持。

下面是一些簡單的曲線幾何圖形的例子。

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">? CIRCULARSTRING(0 0, 1 1, 1 0) ? CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0) ? COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1)) //類似于LINESTRING ? CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))//復(fù)合曲線 ? MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4)) //復(fù)合曲線 </pre>

5. 創(chuàng)建一張空間表

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">CREATE TABLE global_points ( id SERIAL PRIMARY KEY, name VARCHAR(64), location GEOGRAPHY(POINT,4326) ); </pre>

6. 插入數(shù)據(jù)

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">INSERT INTO global_points (name, location) VALUES ('Town', 'SRID=4326;POINT(-110 30)'); INSERT INTO global_points (name, location) VALUES ('Forest', 'SRID=4326;POINT(-109 29)'); INSERT INTO global_points (name, location) VALUES ('London', 'SRID=4326;POINT(0 49)'); </pre>

7. 建立索引

Creating an index works the same as GEOMETRY. PostGIS will note that the column type is GEOGRAPHY and create an

appropriate sphere-based index instead of the usual planar index used for GEOMETRY.

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">CREATE INDEX global_points_gix ON global_points USING GIST ( location ); </pre>

8. 查詢與計算

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//查詢給位置1000公里之內(nèi)的城鎮(zhèn) SELECT name FROM global_points WHERE ST_DWithin(location, 'SRID=4326;POINT(-110 29)':: geography, 1000000); </pre>

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">// 計算從西雅圖飛往倫敦的距離 SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geography, 'POINT(-21.96 64.15)'::geography); //計算點線之間的距離 SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, 'POINT(-21.96 64.15) '::geometry); </pre>

9. spatial_ref_sys表

spatial_ref_sys表是一個包含PostGIS和OGC兼容的數(shù)據(jù)庫表,它列出了3000多個已知的空間參考系 系統(tǒng)以及在它們之間進行轉(zhuǎn)換/投影所需的細節(jié)。 雖然PostGIS的spatial_ref_sys表包含了3000多個比較常用的空間參考系統(tǒng)定義 的定義,但它并不包含所有已知的定義,如果你熟悉proj4的結(jié)構(gòu),你可以定義你自己的投影。

10. SRID

一個整數(shù)值,用于唯一識別數(shù)據(jù)庫中的空間參考系統(tǒng)(SRS)。

11. 創(chuàng)建一個空間數(shù)據(jù)表

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//建表 CREATE TABLE ROADS (ID serial, ROAD_NAME text, geom geometry(LINESTRING,4326) ); //添加字段 ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326); </pre>

12. 創(chuàng)建視圖,目的是簡化SQL語句

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//創(chuàng)建視圖 CREATE VIEW public.vwmytablemercator AS SELECT gid, ST_Transform(geom, 3395) As geom, f_name FROM public.mytable; //刪除視圖 DROP VIEW public.vwmytablemercator; </pre>

13. 加載 GIS (Vector) 數(shù)據(jù)

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">INSERT INTO roads (id, geom, road_name) VALUES (1,'SRID=4326;LINESTRING(191232 243118,191108 243242)'::geometry,'Jeff Rd'); INSERT INTO roads (id, geom, road_name) VALUES (2,'SRID=4326;LINESTRING(189141 244158,189265 244817)','Geordie Rd'); INSERT INTO roads (id, geom, road_name) VALUES (3,'SRID=4326;LINESTRING(192783 228138,192612 229814)','Paul St'); INSERT INTO roads (id, geom, road_name) VALUES (4,'SRID=4326;LINESTRING(189412 252431,189631 259122)','Graeme Ave'); INSERT INTO roads (id, geom, road_name) VALUES (5,'SRID=4326;LINESTRING(190131 224148,190871 228134)','Phil Tce'); INSERT INTO roads (id, geom, road_name) VALUES (6,'SRID=4326;LINESTRING(198231 263418,198213 268322)','Dave Cres'); COMMIT; </pre>

14. 導(dǎo)入數(shù)據(jù)

14.1 使用psql

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">psql -d [database] -f roads.sql </pre>

14.2 使用shp2pgsql

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > roads.sql

psql -d roadsdb -f roads.sql` </pre>

14.3 Unix 命令

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;"># shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb </pre>

15. 檢索數(shù)據(jù)

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//全查 SELECT id, ST_AsText(geom) AS geom, road_name FROM roads; //條件查詢 SELECT id, road_name FROM roads WHERE geom='SRID=312;LINESTRING(191232 243118,191108 243242)'::geometry; //相交查詢 SELECT id, road_name FROM roads WHERE ST_Intersects(geom, 'SRID=312;POLYGON((...))'); //使用矩形框來查詢框內(nèi)是否含有目標實體 SELECT ST_AsText(geom) AS geom FROM roads WHERE geom && ST_MakeEnvelope(191232, 243117,191232, 243119,312,4326); </pre>

16. pgsql2shp

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//語法模板 pgsql2shp [<options>] <database> [<schema>.]<table> pgsql2shp [<options>] <database> <query> </pre>

17. 建立索引

索引使得處理空間數(shù)據(jù)庫大型數(shù)據(jù)集成為可能。

GiST Indexes

GiST是 "通用搜索樹 "的縮寫,是一種通用的索引形式。除了GIS索引之外,GiST還被用來加速 加快對各種不規(guī)則數(shù)據(jù)結(jié)構(gòu)(整數(shù)陣列、光譜數(shù)據(jù)等)的搜索,這些結(jié)構(gòu)不適合使用普通的B-Tree 索引。

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//2D索引 CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] ); //n維索引 CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] gist_geometry_ops_nd); //確保索引在更新或者建立時,依然可以對表進行寫操作; CREATE INDEX CONCURRENTLY [indexname] ON [tablename] USING GIST ( [geometryfield] ); //收集表的統(tǒng)計數(shù)據(jù)報告,以便優(yōu)化查詢SQL VACUUM ANALYZE [table_name] [(column_name)]; </pre>

BRIN Indexes

BRIN是 "塊范圍索引 "的意思,是PostgreSQL 9.5中引入的一種通用的索引形式。BRIN是 是一種有損失的索引,它的主要用途是為讀和寫的性能提供一個折中。它的主要目標是 處理非常大的表,其中一些列與它們在表中的物理位置有一些自然的關(guān)聯(lián)。 表內(nèi)的物理位置有一些自然的關(guān)聯(lián)。除了GIS索引之外,BRIN還被用來加快對各種規(guī)則或不規(guī)則數(shù)據(jù)結(jié)構(gòu)的搜索速度 (整數(shù)、數(shù)組等)

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//普通2D索引 CREATE INDEX [indexname] ON [tablename] USING BRIN ( [geometryfield] ); //3D索引 CREATE INDEX [indexname] ON [tablename] USING BRIN ([geometryfield] brin_geometry_inclusion_ops_3d); //4D索引 CREATE INDEX [indexname] ON [tablename] USING BRIN ([geometryfield] brin_geometry_inclusion_ops_4d); //修改默認的塊大小 CREATE INDEX [indexname] ON [tablename] USING BRIN ( [geometryfield] ) WITH ( pages_per_range = [number]); </pre>

SP-GiST Indexes

SP-GiST是 "空間分割的通用搜索樹 "的縮寫,是一種通用的索引形式,支持分割的 搜索樹,如四叉樹、K-D樹和弧度樹(tries)。這些數(shù)據(jù)結(jié)構(gòu)的共同特點是,它們 重復(fù)地將搜索空間劃分為不需要同等大小的分區(qū)。除了GIS索引之外,SP-GiST還被用來 加快對許多種數(shù)據(jù)的搜索,如電話路由、IP路由、子串搜索等。 與GiST索引一樣,SP-GiST索引也是有損失的,因為它們存儲的是包含空間對象的邊界盒。 對象。SP-GiST索引可以被看作是GiST索引的替代品。性能測試表明,SP-GiST 索引在有許多重疊對象的情況下特別有用,也就是所謂的 "面條數(shù)據(jù)"。 一旦GIS數(shù)據(jù)表超過幾千行,就可以使用SP-GiST索引來加快數(shù)據(jù)的空間搜索速度。

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//2D索引 CREATE INDEX [indexname] ON [tablename] USING SPGIST ( [geometryfield] ); //3D索引 CREATE INDEX [indexname] ON [tablename] USING SPGIST ([geometryfield] spgist_geometry_ops_3d); //確保索引在更新或者建立時,依然可以對表進行寫操作; CREATE INDEX CONCURRENTLY [indexname] ON [tablename] USING SPGIST ( [geometryfield] ); //收集表的統(tǒng)計數(shù)據(jù),以便優(yōu)化查詢SQL VACUUM ANALYZE [table_name] [(column_name)]; </pre>

關(guān)于空間索引的具體使用和操作符介紹,請大家參考這篇文章,這里就不具體一一展開了。

學(xué)以致用 | PostgreSQL之空間索引

那其實準確的來講空間索引不是PostGreSQL提供的,而是由PostGIS提供的功能,這也正體現(xiàn)插件擴展的的意義就是存在于無形,卻作用無處不在!

18. 復(fù)雜查詢示例

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//距離匹配查詢 SELECT the_geom FROM geom_table WHERE ST_Distance(the_geom, 'SRID=312;POINT(100000 200000)') //指定100的緩沖區(qū)的范圍內(nèi)查詢 SELECT the_geom FROM geom_table WHERE ST_DWithin(the_geom, 'SRID=312;POINT(100000 200000)', 100) </pre>

19. raster2pgsql

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">//柵格數(shù)據(jù)轉(zhuǎn)為sql文件 raster2pgsql raster_options_go_here raster_file someschema.sometable > out.sql //實操示例,柵格數(shù)據(jù)入庫 raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev.sql psql -d gisdb -f elev.sql //Unix下柵格數(shù)據(jù)入庫的操作命令 raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql -d gisdb //創(chuàng)建一個全視圖、2和4級的概述表,使用復(fù)制模式插入 raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128 -l 2,4 bostonaerials2008/*.jpg aerials. boston | psql -U postgres -d gisdb -h localhost -p 5432 // get a list of raster types supported: raster2pgsql -G //創(chuàng)建一張存儲柵格數(shù)據(jù)的表 CREATE TABLE myrasters(rid serial primary key, rast raster); //建立索引 CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING gist( ST_ConvexHull( rast) ); </pre>

20. PostGIS Geometry/Geography/Box Data Types

box2d

box2d是一種空間數(shù)據(jù)類型,用于表示一個幾何體或幾何體集合的二維圍合盒。例如 例如,ST_Extent聚合函數(shù)返回一個box2d對象。 該表示法包含xmin、ymin、xmax、ymax的值。這些是X和Y軸的最小值和最大值。 和Y擴展的最小值和最大值。

box3d

box3d是一個postgis空間數(shù)據(jù)類型,用于表示一個幾何體或幾何體集合的三維包圍盒。 幾何體的三維包圍盒。例如,ST_3DExtent聚合函數(shù)返回一個box3d對象。 該表示法包含xmin, ymin, zmin, xmax, ymax, zmax的值。這些是X、Y和Z的最小和最大 X、Y和Z軸的極限值。

geometry

geometry是PostGIS的一個基本空間數(shù)據(jù)類型,用于表示平面(歐幾里得)坐標系中的一個特征。 對幾何體的所有空間操作都使用幾何體所在的空間參考系統(tǒng)的單位。

geometry_dump

geometry_dump是一個包含字段的復(fù)合數(shù)據(jù)類型。

  • geom - 對一個幾何體組件的引用
  • path[] - 一個一維的整數(shù)數(shù)組,定義了傾倒的幾何體到geom組件的導(dǎo)航路徑。 路徑數(shù)組從1開始(例如,path[1]是第一個元素。) 它被ST_Dump*系列函數(shù)用作輸出類型,將一個復(fù)雜的幾何體分解成其組成部分。
geography

geography是一種空間數(shù)據(jù)類型,用于在大地坐標系中表示一個特征。大地坐標系的模型 使用一個橢圓體對地球進行建模。 通過考慮到橢圓體模型,對地理學(xué)類型的空間操作可以提供更準確的結(jié)果。

總結(jié)

這篇文章,我們主要對PostGIS 的背景、下載、安裝,以及一些常用的前置知識進行了較為系統(tǒng)的介紹。

如果你對PostGIS有興趣,希望可以幫助到你~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容