在SuperMap iServer分布式分析服务中,提供了针对海量数据的叠加分析功能。具体包括了相交、擦除、合并等七种模式。本文将介绍如何通过iClient对接分布式分析服务中的叠加分析。
开发准备
1、iServer产品,需要开启分布式分析服务,依赖分布式计算集群
2、iClient SDK,可以通过iClient 产品官网进行下载
iServer上的分布式分析叠加分析作业
在分布式分析服务中找到空间分析下的叠加分析overlay
填写相关参数
创建分析作业,执行完成之后就可以在iServer上预览分析结果
iClient 对接分布式空间分析
SuperMap提供了多个GIS前端开发框架,我们在这以iClient for Leaflet为例来对接
1、引入文件
需要引入leaflet的css和js文件,以及iclient9-leaflet的css,js文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/leaflet.css" />
<link rel="stylesheet" href="http://iclient.supermap.io/dist/leaflet/iclient9-leaflet.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/leaflet.js"></script>
<script type="text/javascript" src="http://iclient.supermap.io/dist/leaflet/iclient9-leaflet.js"></script>
</head>
</html>
2、创建底图
将底图添加到map中
var map = L.map('map', {
crs: L.CRS.EPSG4326,
center: [40.75, -73.95],
maxZoom: 18,
zoom: 12
});
L.supermap.tiledMapLayer(mapURL).addTo(map);
3、创建分布式空间分析服务
分析模式有7种模式,包括裁剪,相交,擦除,合并,更新,同一,对称差分析。我们这里以裁剪为例。
//叠加分析参数类
var overlayGeoJobParameter = new SuperMap.OverlayGeoJobParameter({
datasetName: 'smtiles_processing_newyorkZone_R', //源数据集
datasetOverlay: 'smtiles_processing_singleRegion_R', //叠加数据集
mode: 'clip', //叠加分析模式
srcFields: 'LocationID', //源数据保留字段
overlayFields: 'type' //叠加数据保留字段
});
processingService.addOverlayGeoJob(overlayGeoJobParameter, function (serviceResult) {
//分析失败处理
if (serviceResult.error) {
var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
return;
}
serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
if (info.serviceType === 'RESTMAP') {
SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(function (
response) {
return response.json();
}).then(function (result) {
var mapUrl = result[0].path;
layer = L.supermap.tiledMapLayer(mapUrl, {
noWrap: true,
transparent: true
});
layer.addTo(map); //将分析结果添加到底图上
});
}
});
});
}
执行以上代码,如果分析成功我们可以看到一下结果
完整的代码可以参考SuperMap iClient官网示例http://iclient.supermap.io/examples/leaflet/editor.html#overlayGeoJobService