iClient对接缓冲区分析

作者:lly

在SuperMap iServer分布式分析服务中,提供了针对海量数据的缓冲区分析功能。本文将介绍如何通过iClient对接分布式分析服务中的缓冲区分析。

一、开发准备

1、iServe开启分布式分析服务,参考博客 https://blog.csdn.net/supermapsupport/article/details/90903095
2、iClient开发包,可以通过iClient 产品官网进行下载

二、iServer上的分布式分析缓冲区分析作业

在iServer上可通过图形化界面进行分析,并预览结果,来测试分析的结果是否为想要的结果。
1.首先在分布式分析服务中找到空间分析下的缓冲区分析buffers
在这里插入图片描述
2.创建分析作业,并填写相应参数
在这里插入图片描述
3.执行完毕后可在iServer预览分析结果
在这里插入图片描述
在这里插入图片描述

三、iClient 对接缓冲区分析

我们提供了多个GIS前端开发框架,在这以iClient for Classic为例来对接。

1.引入文件与服务并创建容器

<script type="text/javascript" src="../../dist/classic/include-classic.js"></script>
<script type="text/javascript">
        var resultLayer,
            processingsUrl = "http://localhost:8090/iserver/services/distributedanalyst/rest/v1/jobs",
            mapURL ="http://localhost:8090/iserver/services/map-world/rest/maps/World",
            map = new SuperMap.Map("map", {
                controls: [
                    new SuperMap.Control.Navigation(),
                    new SuperMap.Control.Zoom(),
                    new SuperMap.Control.LayerSwitcher()

                ],
                allOverlays: true
            });           

2.注册秘钥

 SuperMap.SecurityManager.registerToken(processingsUrl, "XEYE-4vTLNnss6Ryd0xGzZL1La8iTw7jpaKRAE5GYEsGDM8fJD3_OsZW4yu2ZtiL9tMkQEAL3tyApDHAlz1GYw..");

3.设置分析参数

 var buffersAnalystJobsParameter = new SuperMap.BuffersAnalystJobsParameter({
                datasetName: $('#datasetName').val(),//分析数据集
                bounds: getBounds(),                 //分析范围
                distance: $('#distace').val(),      //缓冲距离
                distanceField: $('#distanceField').val(),//缓冲距离字段
                distanceUnit: $('#distanceUnit option:selected').attr('value'),//缓冲距离单位
                dissolveField: $('#dissoveField').val()                //融合字段
            });
            

4.执行任务并展示地图

     processingService.addBuffersJob(buffersAnalystJobsParameter, function (serviceResult) {
              if (serviceResult.error) {
                  widgets.loader.removeLoader();
                  var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
                  widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
                  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;
                          resultLayer = new SuperMap.Layer.TiledDynamicRESTLayer(
                              "resultLayer", mapUrl, {
                                  transparent: true
                              });
                          resultLayer.events.on({
                              "layerInitialized": addLayer
                          });

                          function addLayer() {
                              map.addLayer(resultLayer);
                              widgets.loader.removeLoader();
                          }
                      });
                  }
              });
          });

5.显示结果
在这里插入图片描述
完整代码如下:
iClient for Classic:
http://iclient.supermap.io/examples/classic/editor.html#buffersAnalystJobService
iClient for Leaflet:
http://iclient.supermap.io/examples/leaflet/editor.html#buffersAnalystJobService
iClient for Openlayers:
http://iclient.supermap.io/examples/openlayers/editor.html#buffersAnalystJobService

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值