緩衝區分析是指有點、線、面實體爲基礎,自動創建其周圍必定寬度範圍內的緩衝區多邊形圖層,而後創建該圖層與目標圖層的疊加,進行分析而獲得的所需的結果。他是用來解決鄰近度問題的控件分析工具之一。鄰近度描述了地理空間中兩個地物距離相近的程度。算法
緩衝區分析通常涉及點、線、面要素對象的操做,基於點要素的緩衝區,一般以點爲圓心、以必定距離爲半徑的圓;基於線要素的緩衝區,一般是以線爲中心軸線,距中心軸線必定距離的平行條帶多邊形;基於面要素多邊形邊界的緩衝區,向外或向內擴展必定距離以生成新的多邊形。網絡
緩衝區分析是地理信息系統重要的空間分析功能之一,它在交通、林業、資源管理、城市規劃中有着普遍的應用,例如湖泊和河流周圍的保護區的定界、汽車服務區的選擇、民宅區遠離街道網絡的緩衝區的創建等。想更多的瞭解原理能夠點擊連接。ide
PIE支持緩衝區分析算法的執行,下面對此算法功能進行介紹。工具
第一步spa |
算法參數設置code |
第二步視頻 |
算法執行htm |
第三步對象 |
結果顯示blog |
算法名稱 |
緩衝區分析算法 |
|
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 |
緩衝區分析的距離 |
數據路徑 |
百度雲盤地址下/ 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 } |