/* * @Author: shuishen 1109946754@qq.com * @Date: 2024-10-25 15:09:55 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2024-11-25 16:43:43 * @FilePath: \bigScreen\src\hooks\initMap.js * @Description: * * Copyright (c) 2024 by shuishen, All Rights Reserved. */ window.$viewer = null window.$Cesium = null window.$turf = 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.$Cesium = DC.getLib('Cesium') window.$turf = DC.getLib('turf') window.$viewer = new DC.Viewer('viewer-container') window.$viewer.locationBar.enable = true window.$viewer.zoomToPosition(new DC.Position( 115.1021, 27.2360, 5000, 0, -45, 0 ), () => { store.setLoadMap(true) }) }) }) } onMounted(() => { initMap() }) onUnmounted(() => { window.$viewer.destroy() window.$viewer = null window.$Cesium = null window.$turf = null delete window.$viewer delete window.$Cesium delete window.$turf store.setLoadMap(false) }) return { } }