/*
|
* @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 {
|
|
}
|
}
|