# 数据流图层

<sm-web-map :map-options="mapOptions" @load="mapIsLoaded">
  <sm-deckgl-layer layer-type="hexagon-layer" :options="deckglOptions"></sm-deckgl-layer>
</sm-web-map>
<script>
  var wsHost = "ws:\//" + (window.isLocal ? document.location.hostname + ":8800" : "iclsvrws.supermap.io");

  // 模拟 dataflow 实时数据
  var featureResult, dataFlowBroadcast, timer;
  function broadcast() {
      var features = [];
      for (var index = 0; index < featureResult.length; index++) {
          var count = parseInt(Math.random() * featureResult.length);
          var geometry = featureResult[count].geometry;
          var feature = {
              geometry: geometry,
              type: "Feature",
              properties: { id: index + 1, time: new Date() }
          };
          features.push(feature);
      }
      dataFlowBroadcast.broadcast(features);
  }

  function query() {
      var param = new SuperMap.QueryBySQLParameters({
          queryParams: { name: "Capitals@World#3", attributeFilter: "SMID > 0" }
      });
      var queryService = new mapboxgl.supermap.QueryService(
          host + "/iserver/services/map-world/rest/maps/World"
      ).queryBySQL(param, function(serviceResult) {
          featureResult = serviceResult.result.recordsets[0].features.features;
          dataFlowBroadcast = new mapboxgl.supermap.DataFlowService(
              wsHost + "/iserver/services/dataflowTest/dataflow"
          ).initBroadcast();
          dataFlowBroadcast.on("broadcastSocketConnected", function(e) {
              timer = window.setInterval(broadcast, 2000);
          });
      });
  }
  query();

  new Vue({
    el: '#main',
    data() {
      return {
        dataFlowUrl: wsHost + "/iserver/services/dataflowTest/dataflow",
        layerStyle: {
            circle: new SuperMap.Components.commontypes.CircleStyle({
                "circle-color": "#3fb1e3",
                "circle-radius": 6
            })
        },
        mapOptions: {
          container: 'map', // container id
          style: {
            version: 8,
            sources: {
              'raster-tiles': {
                type: 'raster',
                tiles: [
                    'https://iserver.supermap.io/iserver/services/map-china400/rest/maps/China/zxyTileImage.png?z={z}&x={x}&y={y}',
                ],
                tileSize: 256,
              },
            },
            layers: [
              {
                id: 'simple-tiles',
                type: 'raster',
                source: 'raster-tiles',
                minzoom: 0,
                maxzoom: 22,
              },
            ],
          },
          center: [120.143, 30.236],
          zoom: 0
        },
      };
    }
  });
</script>

# Attributes

参数 说明 类型 可选值 默认值
serviceUrl 数据流服务地址 string - -
registerToken SuperMap iServer 提供的一种基于 Token(令牌)的用户身份验证机制。参照 SuperMap iClient API (opens new window) string - -
geometry 指定几何范围。该范围内的要素才能被订阅 object - -
excludeField 排除字段 object - -
layerStyle 图层样式 LayerStyle - -

支持 Layer 混入参数

# Events

name 说明 回调参数
subscribe-succeeded 数据订阅成功后触发 function(e)
subscribe-failed 数据订阅失败后触发 function(e)
data-updated 数据更新成功后触发 function(e)
最后更新时间: 2024/7/4 下午4:10:48