缓冲区分析
缓冲区分析(buffer)是根据指定的距离在点、线和多边形实体周围自动建立一定宽度的区域范围的分析方法。例如,在环境治理时,常在污染的河流周围划出一定宽度的范围表示受到污染的区域;又如在飞机场,常根据附近居民的健康需要在周围划分出一定范围的区域作为非居住区等。
下面以长春数据为例,对“团结路”进行半径为10米的圆头缓冲分析,缓冲区分析的接口使用方法如下:
设置缓冲区分析参数、缓冲区通用参数。
// 缓冲区分析参数
var dsBufferAnalystParameters = new SuperMap.DatasetBufferAnalystParameters({
// 缓冲区分析需要的数据源中的数据集名称
dataset: "RoadLine2@Changchun",
filterQueryParameter: new SuperMap.FilterParameter({
attributeFilter: "NAME='团结路'"
}),
// 缓冲区分析通用参数设置
bufferSetting: new SuperMap.BufferSetting({
// 缓冲区端点枚举值,包含FLAT和ROUND
endType: SuperMap.BufferEndType.ROUND,
// 左侧缓冲距离
leftDistance: {value: 10},
// 右侧缓冲距离
rightDistance: {value: 10},
// 圆头缓冲圆弧处线段的个数
semicircleLineSegment: 10
})
});
设置缓冲区分析服务对象,用于将客户端设置的缓冲区分析服务参数传递给服务端,并接收服务端返回的缓冲区分析结果数据。当向服务端发送请求并且服务端成功返回结果时,用户可对获得的缓冲区分析结果做相应处理。
var serviceUrl = "http://support.supermap.com.cn:8090/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst"
// 创建缓冲区分析实例
new ol.supermap.SpatialAnalystService(serviceUrl).bufferAnalysis(dsBufferAnalystParameters, function (serviceResult) {
// 获取返回的featuers数据
var featuers = serviceResult.result.recordset.features;
});