linwe
2025-11-09 a8715e1b02cef35a82ab438e436cf55d38b03dab
src/components/map/index.vue
@@ -75,9 +75,9 @@
            <div class="img light" @click.stop="highOrLightChange('light')">
              <span :class="{ on: tilesetLayerType == 'light' }">白膜</span>
            </div>
            <!-- <div class="elec high" @click.stop="highOrLightChange('high')">
              <span :class="{ on: tilesetLayerType == 'high' }">高精</span>
            </div> -->
            <div class="elec high" @click.stop="highOrLightChange('high')">
              <span :class="{ on: tilesetLayerType == 'high' }">倾斜</span>
            </div>
          </div>
        </div>
        <div class="angle-btn">
@@ -193,7 +193,9 @@
import createTools from "@/utils/tools/index"
import { mapGetters } from "vuex"
import { getLineSpeed } from "@/utils/turfPolygon"
import {
  get3dTiles
} from "@/api/dept/index.js"
export default {
  name: "mapBox",
@@ -230,6 +232,7 @@
      tilesetLayerType: "",
      angleCheck: true,
      compassBtnTranslate: "rotate(0deg)",
      dtilesList: [],
    }
  },
@@ -467,7 +470,11 @@
    global.DC.ready(initViewer)
    // global.viewer.scene.morphTo2D(1)
    // 添加这一行,在组件挂载后调用 fetchModelList 方法
    this.fetchModelList().then(data => {
      console.log('初始化加载模型列表数据:', data)
      // 如果需要对获取的数据做进一步处理,可以在这里添加代码
    })
    // 清除控制台
    console.clear()
@@ -696,6 +703,51 @@
  },
  methods: {
    /**
      * @description: 获取3D模型列表数据
      * @param {Object} params - 请求参数
      * @return {Promise} 返回接口响应数据
      */
    async fetchModelList (params = {}) {
      try {
        // 默认参数
        const defaultParams = {
          limit: 100,
          page: 1,
          modelName: '',
          status: '',
          createOrg: '经济开发区分局',
          createUser: ''
        }
        // 合并参数
        const requestParams = { ...defaultParams, ...params }
        get3dTiles(requestParams).then(response => {
          console.log('获取模型列表成功:', response.data)
          // 处理响应数据
          if (response && response.data && response.data.result) {
            console.log('获取模型列表成功:', response.data.result)
            this.dtilesList = response.data.result
          } else {
            console.warn('获取模型列表失败: 响应数据为空')
            return null
          }
        })
        // 发起请求
        // const response = await this.$http.get('http://47.212.32.95:12210/shangrao-3d-upload/model/list', {
        //   params: requestParams
        // })
      } catch (error) {
        console.error('获取模型列表时发生错误:', error)
        this.$message({
          message: '获取模型列表失败: ' + error.message,
          type: 'error'
        })
        return null
      }
    },
    // 获取当前地图中心的经纬度
    getSceneCenterPosition (viewer) {
      let centerResult = viewer.camera.pickEllipsoid(
@@ -814,6 +866,10 @@
        this.removeMxTileset(`sdTilesetLayer${item.name}`)
      })
      this.dtilesList.forEach((item) => {
        this.removeMxTileset(`3dsdTilesetLayer${item.id}`)
      })
      // this.addMxTileset('sdTilesetLayer', `${tile3DUrl}/sf3d/361102/model/wanda/tileset.json`)
      // this.addMxTileset('sdTilesetLayer02', `https://tuan-gis.sit.fengtu.com.cn/361102/wanda/tileset.json`)
      // this.addMxTileset('sdTilesetLayer', `/mx/01/tileset.json`)
@@ -823,21 +879,23 @@
      } else {
        this.tilesetLayerType = type
        type == "light"
          ? window.TILESET_LABEL.forEach((item) => {
        if (type == "light") {
          window.TILESET_LABEL.forEach((item) => {
            this.addMxTileset(
              `sdTilesetLayer${item.name}`,
              `${tile3DUrl}/sf3d/361102/model/all/${item.name}/tileset.json`,
              item
            )
          })
          : window.TILESET_LABEL.forEach((item) => {
        } else {
          this.dtilesList.forEach((item) => {
            this.addMxTileset(
              `sdTilesetLayer${item.name}`,
              `${tile3DUrl}/sf3d/361102/model/all1/${item.name}/tileset.json`,
              `3dsdTilesetLayer${item.id}`,
              `${item.accessUrl}`,
              item
            )
          })
        }
        if (this.$route.path == "/layout/house") {
          this.$EventBus.$emit("showHouseingTileset", {