PIE SDK緩衝區分析算法

1.算法功能簡介

  緩衝區分析是指有點、線、面實體爲基礎,自動創建其周圍必定寬度範圍內的緩衝區多邊形圖層,而後創建該圖層與目標圖層的疊加,進行分析而獲得的所需的結果。他是用來解決鄰近度問題的控件分析工具之一。鄰近度描述了地理空間中兩個地物距離相近的程度。算法

  緩衝區分析通常涉及點、線、面要素對象的操做,基於點要素的緩衝區,一般以點爲圓心、以必定距離爲半徑的圓;基於線要素的緩衝區,一般是以線爲中心軸線,距中心軸線必定距離的平行條帶多邊形;基於面要素多邊形邊界的緩衝區,向外或向內擴展必定距離以生成新的多邊形。網絡

  緩衝區分析是地理信息系統重要的空間分析功能之一,它在交通、林業、資源管理、城市規劃中有着普遍的應用,例如湖泊和河流周圍的保護區的定界、汽車服務區的選擇、民宅區遠離街道網絡的緩衝區的創建等。想更多的瞭解原理能夠點擊連接ide

  PIE支持緩衝區分析算法的執行,下面對此算法功能進行介紹。工具

2.算法功能實現說明

2.1 實現步驟

第一步spa

算法參數設置code

第二步視頻

算法執行htm

第三步對象

結果顯示blog

2.2 算法參數

算法名稱

緩衝區分析算法

C#算法DLL

PIE.CommonAlgo.dll

C#算法名稱

PIE.CommonAlgo. BufferAnalysisAlgo

參數結構體

stBufferAnalyse_Exchange_Info

參數說明

strInputFile

String

輸入進行緩衝區分析的矢量文件

strOutputFile

String

緩衝區分析的輸出結果文件

sideType

PIE.CommonAlgo.SideType

側類型(枚舉類型)

fuseType

PIE.CommonAlgo.FuseType

融合類型(枚舉類型)

endCapStyle

EndCapStyle

末端類型

dbDistance

double

緩衝區分析的距離

2.3 示例代碼

數據路徑

百度雲盤地址下/ PIE示例數據/矢量數據/Shape/省會城市.shp

視頻路徑

百度雲盤地址下/PIE視頻教程/10.算法調用/實用工具/緩衝區分析算法.avi

示例代碼

 1 /// <summary>
 2 /// 緩衝區分析
 3 /// </summary>
 4 public void BufferAnalysis()
 5 {
 6     //一、參數設置
 7     PIE.CommonAlgo.stBufferAnalyse_Exchange_Info info = new stBufferAnalyse_Exchange_Info();
 8     info.strInputFile = @"D:\data\China1\省會城市.shp";
 9     info.strOutputFile = @"D:\data\China1\buffer省會城市.shp";
10     info.dbDistance = 3;
11     info.sideType = SideType.SideType_Left;//側類型
12     info.fuseType = FuseType.FuseType_All;//融合類型
13     info.endCapStyle = EndCapStyle.EndCapStyle_Round;//末端類型
14 
15         //二、建立算法對象
16     PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.BufferAnalysisAlgo");
17     if (algo == null) return;   
18     algo.Name = "緩衝區分析";
19     algo.Params = info;
20 
21     //三、執行算法並顯示
22     bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
23     if (result)
24     {
25         MessageBox.Show("執行成功");
26         ILayer layer = LayerFactory.CreateDefaultLayer(info.strOutputFile);
27         if (layer == null) return;
28         m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
29         m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
30     }        
31 }
View Code

2.4 示例截圖

 

相關文章
相關標籤/搜索