/* * @Author: shuishen 1109946754@qq.com * @Date: 2024-10-25 15:09:55 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2024-11-22 14:54:14 * @FilePath: \bigScreen\src\hooks\initMap.js * @Description: * * Copyright (c) 2024 by shuishen, All Rights Reserved. */ window.$viewer = null const { VITE_APP_BASE } = import.meta.env import { useMap } from 'store/map' import { nextTick, onMounted, onUnmounted } from 'vue' import * as turf from '@turf/turf' // import * as Cesium from 'cesium' // import 'cesium/Build/Cesium/Widgets/widgets.css' export function readyViewer () { const store = useMap() function initMap () { if (window.$viewer) return nextTick(() => { DC.ready({ // Cesium: Cesium, baseUrl: `${VITE_APP_BASE}libs/dc-sdk/resources/`, turf, }).then(() => { window.$viewer = new DC.Viewer('viewer-container') window.$viewer.locationBar.enable = true window.$viewer.zoomToPosition(new DC.Position( 115.1048036679409, 27.276835758787513, 4000, 0, -90, 0 ), () => { store.setLoadMap(true) }) }) }) } onMounted(() => { initMap() }) onUnmounted(() => { window.$viewer.destroy() window.$viewer = null delete window.$viewer store.setLoadMap(false) }) return { } }