iClient对接大数据叠加分析

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值