利用PostGIS中的九交模型解決選址問題

1. 問題描述

  • 有一批港口的選址方案,符合標(biāo)準(zhǔn)的選址方案是:港口(線型)的一端必須與湖岸相交,并且港口的所有其他部分都要在湖中。目前有5個選址的方案,這些方案哪些是符合標(biāo)準(zhǔn)的?
file

2. 九交模型介紹

2.1 空間要素的組成部分

  • 首先,定義所有的空間要素都有

    • 內(nèi)部(interior)
    • 邊界(boundary)
    • 外部(exterior)
  • 面:

    file

  • 線:


    file
  • 點:
    I B(為空) E


    file

2.2 九交模型

兩個幾何圖形的空間關(guān)系,可以用以下矩陣表示:

file

舉例來說,就是以下的表達方式,點-點、點-線、點-面、線-線、線-面、面-面的空間關(guān)系可以依次推導(dǎo):


file

2.3 一些典型的空間關(guān)系

OGC中標(biāo)準(zhǔn)的空間關(guān)系

序號 空間關(guān)系 中文名稱 pg函數(shù) 解釋 相交關(guān)系
1 Contains / Inside 包含 一個幾何圖形的內(nèi)部完全包含了另一個幾何圖形
file
2 Croses 交叉、穿過 一個幾何圖形的內(nèi)部和另一個幾何圖形的邊界和內(nèi)部相交,在不同維度圖形使用,如線和面
file
3 Disjoint 分離 兩個幾何圖形的邊界和內(nèi)部不相交
file
4 Equal 相等 兩個幾何圖形具有相同的邊界和內(nèi)部
file
5 Intersects 相交 兩個幾何圖形沒有分離(Non-Disjoint) 除了分離以外的所有情況
6 Overlaps 重疊 兩個圖形的邊界和內(nèi)部相交(Intersect)
file
7 Touch 接觸 兩個幾何圖形的邊界相交,但是內(nèi)部不相交
file
8 Within 包含于 一個幾何圖形的內(nèi)部和邊界完全在另一個幾何圖形的內(nèi)部
file

2.4 擴展

三維空間拓撲關(guān)系
點-點空間關(guān)系2種:相離、相等;
點-線空間關(guān)系3種:相離、相接、包含于;
點-面空間關(guān)系3種:相離、相接、包含于;
點-體空間關(guān)系3種:相離、相接、包含于;
線-線空間關(guān)系7種:相離、相交、交疊、相等、相接、包含于、包含;
線-面空間關(guān)系5種:相離、相接、進入、穿越、包含于;
線-體空間關(guān)系5種:相離、相接、進入、穿越、包含于;
面-面空間關(guān)系10種:相離、相接、交疊、相等、包含于、包含、覆蓋、被覆蓋、穿越、被穿越;
面-體空間關(guān)系8種:相離、相接、交疊、進入、包含于、包含、穿越、被穿越;
體-體空間關(guān)系8種:相離、相接、進入、相等、包含于、包含、穿越、被穿越。

3. 如何在PostgreSQL中利用9交模型解決碼頭選址問題?

3.1 分析:

碼頭必須擁有以下特征:

  • 碼頭一端與湖岸相接→B(a)∩B(b) = 0
  • 碼頭在湖中→I(a)∩I(b) = 1
  • 碼頭不在湖以外的地區(qū) → I(a)∩E(b) = F
  • 碼頭的另外一端在湖中 → B(a)∩I(b) = 0

所以整理得到九交滿足的碼頭標(biāo)準(zhǔn)為:1FF00F212

file

3.2 計算過程

    1. 數(shù)據(jù)初始化
CREATE TABLE lakes ( id serial primary key, geom geometry ); --創(chuàng)建帶有坐標(biāo)的geom表
CREATE TABLE docks ( id serial primary key, good boolean, geom geometry ); --創(chuàng)建碼頭表
INSERT INTO lakes ( geom ) VALUES ( 'POLYGON ((100 200, 140 230, 180 310, 280 310, 390 270, 400 210, 320 140, 215 141, 150 170, 100 200))'); -- 初始化數(shù)值

INSERT INTO docks ( geom, good ) VALUES ('LINESTRING (170 290, 205 272)',true),('LINESTRING (120 215, 176 197)',true),('LINESTRING (290 260, 340 250)',false),('LINESTRING (350 300, 400 320)',false),('LINESTRING (370 230, 420 240)',false),('LINESTRING (370 180, 390 160)',false); --初始化碼頭

file
    1. 進行相交分析
SELECT docks.* FROM docks JOIN lakes ON ST_Intersects(docks.geom, lakes.geom) WHERE ST_Relate(docks.geom, lakes.geom, '1FF00F212');--ST_Intersects先進行求交運算,判斷

4. 9交模型的運算效率如何?

  • 敬請期待

參考博客:
點線面拓撲關(guān)系
代數(shù)拓撲
維數(shù)擴展的9交集模型

?著作權(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)容

  • 如題,以下僅在2D討論 點集拓撲學(xué):通過邊界和內(nèi)部兩個點集的交進行定義。 1.描述的是什么? 拓撲關(guān)系。 用來描述...
    麥三刀閱讀 11,432評論 0 2
  • 1. 圖形推理命題形式(3.47) 一組圖 (常見) 兩組圖 (常見) 九宮格 (常見) 分組分類 空間類(折紙盒...
    師從小馬哥閱讀 1,746評論 0 0
  • 空間關(guān)系描述是GIS系統(tǒng)的基本功能之一。我在學(xué)校學(xué)習(xí)到的空間關(guān)系分為三種:方位關(guān)系、距離關(guān)系、拓撲關(guān)系。今天我要分...
    winar2008閱讀 13,387評論 0 54
  • from PostgreSQL+PostGIS 的使用 一、PostGIS中的幾何類型 PostGIS支持所有O...
    山華水清閱讀 7,101評論 0 5
  • 九月跟老公離婚了,不為別的,因為累。 她是再婚的,老公死的早。重新嫁了個男的吧,恨不得拉泡屎都扯上她。 她老公做個...
    艾米李園閱讀 388評論 0 0

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