Qgs開發16 拓撲分析

2021-06-27 22:02:08 字數 2023 閱讀 1254

qgs開發-拓撲分析

[email protected]

2023年10月22日

拓撲分析一般是指地理元素之間的相關關係。一般是以基本的空間關係為基礎,進行綜合運算,計算元素之間的複雜關係,如空洞檢查、重疊檢查等。

參考:針對特定的幾何關係,綜合執行基本空間關係,檢測出特定的目標元素。

1)   首先獲取多邊形geo的外接多邊形,並做乙個緩衝區buff,目的是最外層的多邊形是乙個完整的多邊形。

2)   然後將這個buff與geo做difference運算,獲取在buff中,而不在geo中的多邊形,此時會生成最外層的乙個多邊形(第一部中如果不做buff,這裡會有很多的外部多邊形,無法與內容空洞區別)和內部的空洞。

3)   刪除最外層的多邊層,剩餘的多邊形就是內部的空洞。

1)   首先刪除相交部分:geo2與geo1做difference,從geo2中刪除與geo1相交的部分。

2)   然後將geo2與geo1合併(combine),檢測合併後多邊形的空洞(參見空洞檢測(gaps):檢測乙個多邊形是否存在空洞)。

3)   將空洞與第一步中的diff合併:將所有空洞新增到geo2中。

/**

*@brief

qgsvectoranalysis::detectgaps *

*getgeometry

gaps. *

@note

from

topotest.cpp *

@param

pgeo *

@return

gaps

geometry *

@author

[email protected] *

@date

2014-10-21

18:31:50 */

qgsgeometry

*qgsvectoranalysis

::detectgaps(

qgsgeometry

*pgeo)

else

return

pgaps;}

else

}

/**
*

@brief

qgsvectoranalysis::mergeborder

*
*

merge:delete

intersect

andadd

gaps

togeo2.

*

@param

pgeo1

*

@param

pgeo2

*

@return

mergered

geometry

*

@author

[email protected]

*

@date

2014-10-20

16:19:16

*/
qgsgeometry

*qgsvectoranalysis

::mergeborder(

qgsgeometry

*pgeo1,

qgsgeometry

*pgeo2)

if(

pgaps->ismultipart())

//multi

gaps

}

else

qdebug()<<

"pmergeborder="

return

pmergeborder;

}

拓撲分析相關

拓撲分析相關 拓撲分析一直是gis的核心,這裡簡單列出相關資源。geos是jts的c 實現,儘管其效率還有提公升的空間,也是被眾多開源所應用。nettopologysuite是jts的c 實現。1.geospatial topology 2.jts 3.jts download 4.geos 5.n...

拓撲排序分析

例如你輸入n個點,m個聯絡 4 3這四個點分別為1,2,3,4。但是這四個點輸出的順序必須是先有乙個條件後有乙個輸出。1 21 3 4 2意思就是先輸出2才能輸出1,先輸出3才能輸出1,先輸出2才能輸出4.我們就是要先建立四個陣列,分別存入不同的資料。例如建立a num b num 兩個陣列分別用來...

16 實驗分析

本篇總結實驗部分要做哪些分析 哪些對比。主要目的是幫助寫好 的實驗章節。首先,寫清楚實驗的資料 資料規模 資料屬性。其次,實驗中的各種引數,網路用了幾層,什麼啟用函式,什麼特徵,還有實驗環境,機器的效能,cpu 記憶體 磁碟 顯示卡 作業系統 程式語言 ide版本 分析的時候要分析時間複雜度 空間複...