创建矢量线数据集单边多重缓冲区。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static bool CreateLineOneSideMultiBuffer( DatasetVector sourceDataset, DatasetVector resultDataset, double[] bufferRadii, BufferRadiusUnit bufferRadiusUnit, int semicircleSegments, bool isLeft, bool isUnion, bool isAttributeRetained, bool isRing ) |
参数
- sourceDataset
- Type: SuperMap.Data..::.DatasetVector
指定的创建多重缓冲区的源矢量数据集。只支持线数据集。
- resultDataset
- Type: SuperMap.Data..::.DatasetVector
指定的用于存储缓冲区分析结果的数据集,必须是面数据集。
- bufferRadii
- Type: array<
System..::.Double
>[]()[]
- bufferRadiusUnit
- Type: SuperMap.Analyst.SpatialAnalyst..::.BufferRadiusUnit
指定的缓冲区半径单位。
- semicircleSegments
- Type: System..::.Int32
指定的弧段拟合数。
- isLeft
- Type: System..::.Boolean
是否生成左缓冲区。设置为 true,在线的左侧生成缓冲区,否则在右侧生成缓冲区。
- isUnion
- Type: System..::.Boolean
是否合并缓冲区,即是否将源数据各对象生成的所有缓冲区域进行合并运算后返回。
- isAttributeRetained
- Type: System..::.Boolean
是否保留进行缓冲区分析的对象的字段属性。当合并结果面数据集时,该参数无效。即当 isUnion 为 false 时有效。
- isRing
- Type: System..::.Boolean
是否生成环状缓冲区。设置为 true,则生成多重缓冲区时外圈缓冲区是以环状区域与内圈数据相邻的;设置为 false,则外围缓冲区是一个包含了内圈数据的区域。
返回值
一个布尔值,如果成功返回 true,否则返回 false。备注
线的单边多重缓冲区,是指在线对象的一侧生成多重缓冲区。左侧是指沿线对象的节点序列方向的左侧,右侧为节点序列方向的右侧。
有关缓冲区分析的更多介绍,请参阅 BufferAnalyst 类。
注意:不支持对网络数据集创建线的单边多重缓冲区。
示例
以下代码示范了如何创建矢量线数据集的单边多重缓冲区。假设已经获取需要做缓冲区的数据集,并且用于存储结果的数据集已经创建或存在。
CopyC#
public void OneSideMultiBufferForDataset(DatasetVector sourceDataset, DatasetVector resultDataset) { //使用数组来存储多重缓冲区的半径 Double[] arrayRadius = new Double[2] { 30, 100 }; //设置弧段拟合数为20 Int32 semicircleSegments = 20; //设置单边缓冲区的类型为左缓冲区 Boolean isLeft = true; //调用创建矢量线数据集单边多重缓冲区方法 BufferAnalyst.CreateLineOneSideMultiBuffer(sourceDataset, resultDataset, arrayRadius, BufferRadiusUnit.Meter, semicircleSegments, isLeft, false, true, false); }