qgs開發-拓撲分析
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
@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
*@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版本 分析的時候要分析時間複雜度 空間複...