缓冲区分析是指有点、线、面实体为基础,自动创建其周围必定宽度范围内的缓冲区多边形图层,而后创建该图层与目标图层的叠加,进行分析而获得的所需的结果。他是用来解决邻近度问题的控件分析工具之一。邻近度描述了地理空间中两个地物距离相近的程度。算法
缓冲区分析通常涉及点、线、面要素对象的操做,基于点要素的缓冲区,一般以点为圆心、以必定距离为半径的圆;基于线要素的缓冲区,一般是以线为中心轴线,距中心轴线必定距离的平行条带多边形;基于面要素多边形边界的缓冲区,向外或向内扩展必定距离以生成新的多边形。网络
缓冲区分析是地理信息系统重要的空间分析功能之一,它在交通、林业、资源管理、城市规划中有着普遍的应用,例如湖泊和河流周围的保护区的定界、汽车服务区的选择、民宅区远离街道网络的缓冲区的创建等。想更多的了解原理能够点击连接。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 } |