创建矢量记录集多重缓冲区。

命名空间:  SuperMap.Analyst.SpatialAnalyst
程序集:  SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll

语法

C#
public static bool CreateMultiBuffer(
	Recordset sourceRecordset,
	DatasetVector resultDataset,
	double[] bufferRadii,
	BufferRadiusUnit bufferRadiusUnit,
	int semicircleSegments,
	bool isUnion,
	bool isAttributeRetained,
	bool isRing
)

参数

sourceRecordset
Type: SuperMap.Data..::.Recordset
指定的创建多重缓冲区的源矢量记录集。支持点、线、面记录集。
resultDataset
Type: SuperMap.Data..::.DatasetVector
指定的用于存储缓冲区分析结果的数据集。
bufferRadii
Type: array< System..::.Double >[]()[]
bufferRadiusUnit
Type: SuperMap.Analyst.SpatialAnalyst..::.BufferRadiusUnit
指定的缓冲区半径单位。
semicircleSegments
Type: System..::.Int32
指定的弧段拟合数。
isUnion
Type: System..::.Boolean
是否合并缓冲区,即是否将源数据各对象生成的所有缓冲区域进行合并运算后返回。
isAttributeRetained
Type: System..::.Boolean
是否保留进行缓冲区分析的对象的字段属性。当合并结果面数据集时,该参数无效。即当 isUnion 为 false 时有效。
isRing
Type: System..::.Boolean
是否生成环状缓冲区。设置为 true,则生成多重缓冲区时外圈缓冲区是以环状区域与内圈数据相邻的;设置为 false,则外围缓冲区是一个包含了内圈数据的区域。

返回值

一个布尔值,如果成功返回 true,否则返回 false。

备注

有关缓冲区分析的介绍,请参阅 BufferAnalyst 类。

示例

以下代码示范了如何根据给定的记录集创建线的多重缓冲区。假设已经获取需要做缓冲区的记录集,并且用于存储结果的数据集已经创建或存在。

CopyC#
public void MultiBufferForRecordset(Recordset sourceRecordset, DatasetVector resultDataset)
{
    //使用数组来存储多重缓冲区的半径
    Double[] arrayRadius = new Double[4] { 30, 90, 100, 200 };

    //设置弧段拟合数为20
    Int32 semicircleSegments = 20;

    BufferAnalyst.CreateMultiBuffer(sourceRecordset, resultDataset, arrayRadius,
    BufferRadiusUnit.Meter, semicircleSegments, false, true, false);
}

请参见