用SuperMap版leaflet框架对SuperMap iServer发布的3个数据集进行叠加分析

用leaflet对iServer发布的3个数据集进行叠加分析


多边形与数据集叠加分析用参数 DatasetOverlayAnalystParameters
多边形与多边形叠加分析用参数GeometryOverlayAnalystParameters
叠加数据同时使用了operateDataset和operateRegions时互斥,只有operateDataset生效。

前置条件

发布了对应的空间数据服务

示例代码

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <title data-i18n="resources.title_overlayAnalyst"></title>
  <script type="text/javascript" src="../js/include-web.js"></script>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
<script type="text/javascript">
  var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  var map, overlayAnalystService, datasetOverlayAnalystParameters, resultLayer,
          baseUrl = "http://localhost:8090/iserver/services/map-kh_L2/rest/maps/China_Province_4326%40kh_L2",
          serviceUrl = "http://localhost:8090/iserver/services/spatialAnalysis-kh_L2/restjsr/spatialanalyst";
  map = L.map('map', {
    crs: L.CRS.EPSG4326,
    center: [40.05, 110.85],
    maxZoom: 18,
    zoom: 3
  });
  new L.supermap.TiledMapLayer(baseUrl, {transparent: true, cacheEnabled: false, noWrap: true}).addTo(map);
  overlayAnalystProcess();

  function overlayAnalystProcess() {
    overlayAnalystService = new L.supermap.SpatialAnalystService(serviceUrl);
    datasetOverlayAnalystParameters = new L.supermap.DatasetOverlayAnalystParameters({
      sourceDataset: "hospital@kh_L2",
      operateDataset: "school@kh_L2",
      tolerance: 0,
      operation: L.supermap.OverlayOperationType.CLIP
    });
    overlayAnalystService.overlayAnalysis(datasetOverlayAnalystParameters, function (serviceResult) {
      var result = serviceResult.result;
      // resultLayer = L.geoJSON(result.recordset.features).addTo(map);
      var features1=serviceResult.result.recordset.features.features;
      // console.log(serviceResult.result.recordset.features.features);
      overlayAnalystProcess2(features1)//分析结果(该测试数据只有一个多边形)与第三个数据集叠加分析
    });
  }


  function overlayAnalystProcess2(arr) {
    overlayAnalystService = new L.supermap.SpatialAnalystService(serviceUrl);
    datasetOverlayAnalystParameters = new L.supermap.DatasetOverlayAnalystParameters({
      sourceDataset: "police@kh_L2",
      operateRegions: arr,
      tolerance: 0,
      operation: L.supermap.OverlayOperationType.CLIP
    });
    overlayAnalystService.overlayAnalysis(datasetOverlayAnalystParameters, function (serviceResult) {
      var result = serviceResult.result;
      resultLayer = L.geoJSON(result.recordset.features).addTo(map);
      console.log(serviceResult.result.recordset.features.features);
    });
  }
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q行天下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值