# 地图文档对象类 Document

地图文档对象。用于管理所有的地图服务。

# computed

# baseLayerMap

  • 类型Map
  • 描述:底图,为地图列表中的第 1 个。

# defaultMap

  • 类型Map
  • 描述:除底图的其他地图服务,为地图列表中的第 0 个。

# methods

# clone

  • 描述:创建一个深度克隆的 Document 对象。
  • 返回值:克隆后的 Document 对象。

提示

如何获取 document? 只需要在微件内部混入 widgetMixin 即可。

<template>
  <div></div>
</template>

<script lang="ts">
import {
  WidgetMixin,
  LayerType,
  IGSSceneSublayerType,
  LoadStatus,
  Objects
} from '@mapgis/web-app-framework'

const { ColorUtil } = Util

export default {
  name: 'MpProfileAnalysis',
  mixins: [WidgetMixin],
  watch: {
    document: {
      handler: 'getScenes',
      immediate: true,
      deep: true
    }
  },

  methods: {
    /**
     * 动态获取基础目录树上已勾选的三维数据
     */
    getScenes() {
      if (!this.document) return
      const layers = []
      this.document.defaultMap
        .clone()
        .getFlatLayers()
        .forEach((layer, index) => {
          if (layer.loadStatus === LoadStatus.loaded) {
            if (layer.type === LayerType.IGSScene) {
              if (layer.activeScene) {
                const { type } = layer.activeScene.sublayers[0]
                if (
                  type === IGSSceneSublayerType.elevation ||
                  type === IGSSceneSublayerType.modelCache
                ) {
                  // 获取地形和模型
                  layers.push(layer)
                }
              }
            } else if (layer.type === LayerType.STKTerrain) {
              layers.push(layer)
            }
          }
        })
      this.layers = layers
      if (layers.length > 0) {
        this.layer = layers[layers.length - 1]
      } else {
        this.layer = layers
        this.layer = null
      }
    }
  }
}
</script>

<style lang="less" scoped></style>