zoukankan      html  css  js  c++  java
  • PIE SDK缓冲区分析算法

    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

    示例代码

     1 /// <summary>
     2 /// 缓冲区分析
     3 /// </summary>
     4 public void BufferAnalysis()
     5 {
     6     //1、参数设置
     7     PIE.CommonAlgo.stBufferAnalyse_Exchange_Info info = new stBufferAnalyse_Exchange_Info();
     8     info.strInputFile = @"D:dataChina1省会城市.shp";
     9     info.strOutputFile = @"D:dataChina1uffer省会城市.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         //2、创建算法对象
    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     //3、执行算法并显示
    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 示例截图

     

  • 相关阅读:
    Metasploit advanced命令使用技巧
    Metasploit命令info使用技巧
    Kali Linux 2020.1b发布了
    设置USB无线网卡为监听模式大学霸IT达人
    解决ifconfig命令未找到
    Metasploit新增技巧提示功能
    Wireshark运算符!=无法正常工作
    解决Kali Linux XFCE桌面Tab无法补全
    Nessus更新到8.9.1
    ASP入门(七)-Response小案例
  • 原文地址:https://www.cnblogs.com/PIESat/p/11248498.html
Copyright © 2011-2022 走看看