程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static class BufferAnalyst |
备注
缓冲区分析是围绕空间对象,使用一个或多个与这些对象的距离值(称为缓冲半径)作为半径,生成一个或多个区域的过程。缓冲区也可以理解为空间对象的一种影响或服务范围。
缓冲区分析的基本作用对象是点、线、面。SuperMap 支持对二维点、线、面数据集(或记录集)和网络数据集进行缓冲区分析。其中,对网络数据集进行缓冲区分析时,是对其中的弧段作缓冲区。缓冲区的类型可以分析单重缓冲区(或称简单缓冲区)和多重缓冲区。下面以简单缓冲区为例分别介绍点、线、面的缓冲区。
- 点缓冲区
- 线缓冲区
- 面缓冲区
- 多重缓冲区是指在几何对象的周围,根据给定的若干缓冲区半径,建立相应数据量的缓冲区。对于线对象,还可以建立单边多重缓冲区,但注意不支持对网络数据集创建。
点的缓冲区是以点对象为圆心,以给定的缓冲距离为半径生成的圆形区域。当缓冲距离足够大时,两个或多个点对象的缓冲区可能有重叠。选择合并缓冲区时,重叠部分将被合并,最终得到的缓冲区是一个复杂面对象。
线的缓冲区是沿线对象的法线方向,分别向线对象的两侧平移一定的距离而得到两条线,并与在线端点处形成的光滑曲线(也可以形成平头)接合形成的封闭区域。同样,当缓冲距离足够大时,两个或多个线对象的缓冲区可能有重叠。合并缓冲区的效果与点的合并缓冲区相同。
线对象两侧的缓冲宽度可以不一致,从而生成左右不等缓冲区;也可以只在线对象的一侧创建单边缓冲区。此时只能生成平头缓冲区。
面的缓冲区生成方式与线的缓冲区类似,区别是面的缓冲区仅在面边界的一侧延展或收缩。当缓冲半径为正值时,缓冲区向面对象边界的外侧扩展;为负值时,向边界内收缩。同样,当缓冲距离足够大时,两个或多个线对象的缓冲区可能有重叠。也可以选择合并缓冲区,其效果与点的合并缓冲区相同。
缓冲区分析在 GIS 空间分析中经常用到,且往往结合叠加分析来共同解决实际问题。缓冲区分析在农业、城市规划、生态保护、防洪抗灾、军事、地质、环境等诸多领域都有应用。
例如扩建道路时,可根据道路扩宽宽度对道路创建缓冲区,然后将缓冲区图层与建筑图层叠加,通过叠加分析查找落入缓冲区而需要被拆除的建筑;又如,为了保护环境和耕地,可对湿地、森林、草地和耕地进行缓冲区分析,在缓冲区内不允许进行工业建设。
说明:
- 对于面对象,在做缓冲区分析前最好先经过拓扑检查,排除面内相交的情况,所谓面内相交,指的是面对象自身相交,如图所示,图中数字代表面对象的节点顺序。
- 对“负半径”的说明
- 如果缓冲区半径为数值型,则仅面数据支持负半径;
- 如果缓冲区半径为字段或字段表达式,如果字段或字段表达式的值为负值,对于点、线数据取其绝对值;对于面数据,若合并缓冲区,则取其绝对值,若不合并,则按照负半径处理。
关于缓冲区的参数设置,请参见 BufferAnalystParameter 类。
继承层次
SuperMap.Analyst.SpatialAnalyst..::.BufferAnalyst