1.算法功能简介
缓冲区分析是指有点、线、面实体为基础,自动建立其周围一定宽度范围内的缓冲区多边形图层,然后建立该图层与目标图层的叠加,进行分析而得到的所需的结果。他是用来解决邻近度问题的控件分析工具之一。邻近度描述了地理空间中两个地物距离相近的程度。
缓冲区分析一般涉及点、线、面要素对象的操作,基于点要素的缓冲区,通常以点为圆心、以一定距离为半径的圆;基于线要素的缓冲区,通常是以线为中心轴线,距中心轴线一定距离的平行条带多边形;基于面要素多边形边界的缓冲区,向外或向内扩展一定距离以生成新的多边形。
缓冲区分析是地理信息系统重要的空间分析功能之一,它在交通、林业、资源管理、城市规划中有着广泛的应用,例如湖泊和河流周围的保护区的定界、汽车服务区的选择、民宅区远离街道网络的缓冲区的建立等。想更多的了解原理可以点击链接。
PIE支持缓冲区分析算法的执行,下面对此算法功能进行介绍。
2.算法功能实现说明
2.1 实现步骤
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 |
示例代码 |
/// <summary>
/// 缓冲区分析
/// </summary>
public void BufferAnalysis()
{
//1、参数设置
PIE.CommonAlgo.stBufferAnalyse_Exchange_Info info = new stBufferAnalyse_Exchange_Info();
info.strInputFile = @"D:\data\China1\省会城市.shp";
info.strOutputFile = @"D:\data\China1\buffer省会城市.shp";
info.dbDistance = ;
info.sideType = SideType.SideType_Left;//侧类型
info.fuseType = FuseType.FuseType_All;//融合类型
info.endCapStyle = EndCapStyle.EndCapStyle_Round;//末端类型
//2、创建算法对象
PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.BufferAnalysisAlgo");
if (algo == null) return;
algo.Name = "缓冲区分析";
algo.Params = info;
//3、执行算法并显示
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
if (result)
{
MessageBox.Show("执行成功");
ILayer layer = LayerFactory.CreateDefaultLayer(info.strOutputFile);
if (layer == null) return;
m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
} |
2.4 示例截图
![PIE SDK缓冲区分析算法-LMLPHP PIE SDK缓冲区分析算法-LMLPHP]()