mapgis-3d-skyline

# 属性

# vueKey

  • 类型: String
  • 可选
  • 非侦听属性
  • 默认值: default
  • 描述:
mapgis-web-scene组件的ID,当使用多个mapgis-web-scene组件时,需要指定该值,来唯一标识mapgis-web-scene组件,
同时mapgis-web-scene插槽中的组件也需要传入相同的vueKey,让组件知道应该作用于哪一个mapgis-web-scene。

# vueIndex

  • 类型: Number
  • 可选
  • 非侦听属性
  • 描述:
当mapgis-web-scene插槽中使用了多个相同组件时,例如多个mapgis-3d-igs-doc-layer组件,用来区分组件的标识符。

# skylineWidth

  • 类型: Number
  • 可选
  • 侦听属性
  • 默认值: 2
  • 描述: 天际线宽度

# skylineColor

  • 类型: String
  • 可选
  • 侦听属性
  • 默认值: rgb(255,0,0)
  • 描述: 天际线颜色

# 事件

# @load

  • Description: 在 Skyline组件 加载完毕后发送该事件
  • Payload 天际线分析对象

# @success

  • Description: 在天际线分析结束后发送该事件

# @showAnalysis2d

  • Description: 在点击二维天际线echarts图表分析后 发送该事件
  • Payload 二维天际线图表echarts对象

# @remove

  • Description: 在移除分析对象和分析结果后,发送该事件

# @unload

  • Description: 在销毁组件后,发送该事件

# 示例

<template>
  <mapgis-web-scene style="height:95vh">
    <mapgis-3d-raster-layer :url="url"/>
    <mapgis-3d-igs-m3d :autoReset="autoReset" :maximumScreenSpaceError="maximumScreenSpaceError" :url="m3dUrl"/>
    <mapgis-ui-card customPosition="top-left">
      <mapgis-3d-skyline
          :skylineWidth='skylineWidth'
          :skylineColor='skylineColor'
          @load='load'
          @remove='remove'
          @showAnalysis2d='showAnalysis2d'>
      </mapgis-3d-skyline>
    </mapgis-ui-card>
    <!--      <mapgis-window-wrapper :visible='skyline2dVisible'>-->
    <mapgis-ui-window
        @window-size='onSkyline2dWindowSize'
        :visible.sync='skyline2dVisible'
        :min-width='300'
        :max-height='300'
        anchor='bottom-left'
        title='二维天际线'
    >
      <div ref='skyline2dChart'>
        <div id='skyline-2d-chart' style="width:300px;height:230px"/>
      </div>
    </mapgis-ui-window>
    <!--      </mapgis-window-wrapper>-->
  </mapgis-web-scene>
</template>

<script>
import * as echarts from "echarts";

export default {
  name: "cesiumSkyline.vue",
  data() {
    return {
      url: "http://t0.tianditu.com/DataServer?T=vec_w&L={z}&Y={y}&X={x}&tk=9c157e9585486c02edf817d2ecbc7752",
      m3dUrl: "http://develop.smaryun.com:6163/igs/rest/g3d/ZondyModels",
      autoReset: true,
      maximumScreenSpaceError: 8,
      skyline2dChart: null,
      skyline2dVisible: false,
      skyLineAnalysis: null,
      skylineWidth: 2,
      skylineColor: "rgb(255,0,0)",
    };
  },
  methods: {
    /**
     * 二维天际线图表弹框size变化
     * @param mode
     */
    onSkyline2dWindowSize(mode) {
      this.$nextTick(() => {
        if (this.skyline2dChart) {
          const width =
              mode === "max" ? this.$refs.skyline2dChart.clientWidth : 300;
          this.skyline2dChart.resize({ width });
        }
      });
    },
    remove() {
      this.hideAnalysis2d();
    },

    load(skyLineAnalysis) {
      this.skyLineAnalysis = skyLineAnalysis;
    },

    /**
     * 展示二维天际线
     * todo 绘制完成回调添加二维坐标点 #143
     */
    showAnalysis2d(skyline2dChart) {
      this.skyline2dVisible = true;
      this.skyline2dChart = skyline2dChart;
    },

    /**
     * 隐藏二维天际线
     */
    hideAnalysis2d() {
      this.skyline2dVisible = false;
    },
  },
};
</script>

<style scoped>
.storybook-ui-card {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1000;
}
#skyline-2d-chart {
  height: 300px;
  width: 230px;
}
</style>