<template>
|
<div class="ParentCentermapdiv">
|
<div id="Centermapdiv"></div>
|
</div>
|
</template>
|
|
<script>
|
let yunxuanLayer = null
|
export default {
|
name: "",
|
components: {},
|
data() {
|
return {}
|
},
|
mounted() {
|
this.init3DMap()
|
this.$bus.$on("changeProject", name => {
|
if (!yunxuanLayer) {
|
var urls = "https://tiles3.geovisearth.com/base/v1/ter"
|
// 星图地球地形晕渲
|
yunxuanLayer = sgworld.Creator.createUrlTemplateImageryProvider(
|
"星图地球地形晕渲",
|
{
|
url:
|
urls +
|
"/{z}/{x}/{y}?format=webp&token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405",
|
},
|
"0",
|
undefined,
|
true,
|
""
|
)
|
}
|
if (name == '全球项目') {
|
yunxuanLayer.item.show = true
|
} else {
|
yunxuanLayer.item.show = false
|
}
|
})
|
},
|
methods: {
|
init3DMap() {
|
//地图初始化
|
// window.sgworld = new SmartEarth.SGWorld("Centermapdiv", {
|
// licenseServer: window.sceneConfig.licenseServer,
|
// })
|
window.sgworld = new SmartEarth.SGWorld(
|
"Centermapdiv",
|
SmartEarthRootUrl + "Workers/image/earth.jpg",
|
function () {}
|
)
|
|
window.viewer = window.Viewer = window.sgworld._Viewer
|
// Viewer.imageryLayers._layers[0].show = false
|
|
// viewer.clock.shouldAnimate = true
|
//每次旋转的弧度 越小越慢
|
var angle = Cesium.Math.toRadians(Math.PI * 1)
|
// 旋转次数 用来控制停止
|
var rotate_num = 0
|
function onTickCallback() {
|
viewer.scene.camera.rotate(Cesium.Cartesian3.UNIT_Z, angle)
|
//以下用来控制 停止
|
rotate_num++
|
// 110 次旋转一周
|
if (rotate_num == 1) {
|
Viewer.camera.flyTo({
|
destination: {
|
x: -2395735.480669514,
|
y: 35646557.30966785,
|
z: 33320031.01620178,
|
},
|
orientation: {
|
heading: 6.283185307179578,
|
roll: 0,
|
pitch: -1.5687480368906144,
|
},
|
})
|
}
|
if (rotate_num == 220) {
|
Viewer.camera.flyTo({
|
destination: {
|
x: -4022999.313498903,
|
y: 19214082.70976515,
|
z: 13043510.373621361,
|
},
|
orientation: {
|
heading: 6.283185307179577,
|
roll: 0,
|
pitch: -1.5643686104630592,
|
},
|
})
|
}
|
if (rotate_num === 330) {
|
//结束旋转
|
viewer.clock.onTick.removeEventListener(onTickCallback)
|
//可以再接定位动画
|
Viewer.camera.flyTo({
|
destination: {
|
x: -3919623.6069864673,
|
y: 13752070.475126158,
|
z: 8307291.863719194,
|
},
|
orientation: {
|
heading: 6.283185307179582,
|
roll: 0,
|
pitch: -1.5707039123519846,
|
},
|
})
|
}
|
}
|
// 利用时钟进行监听
|
viewer.clock.onTick.addEventListener(onTickCallback)
|
Viewer.imageryLayers.addImageryProvider(
|
new Cesium.UrlTemplateImageryProvider({
|
url: gaoDeBaseUrl[0].url,
|
})
|
)
|
|
Viewer.imageryLayers.addImageryProvider(
|
new Cesium.UrlTemplateImageryProvider({
|
url: gaoDeBaseUrl[1].url,
|
})
|
)
|
Viewer.imageryLayers.addImageryProvider(
|
new Cesium.UrlTemplateImageryProvider({
|
url: gaoDeBaseUrl[2].url,
|
})
|
)
|
|
Viewer._enableInfoOrSelection = false
|
//显示fps
|
Viewer.scene.debugShowFramesPerSecond = false
|
//导航控件
|
window.sgworld.navControl("nav", false)
|
//比例尺
|
window.sgworld.navControl("scale", false)
|
//开启深度检测
|
sgworld.Analysis.depthTestAgainstTerrain(true)
|
|
Viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
|
url: demLayer,
|
})
|
|
//改变天空颜色为黑色
|
Viewer.scene.skyBox.show = false //关闭天空盒,否则会显示天空颜色
|
//背景透明
|
Viewer.scene.backgroundColor = new Cesium.Color(0.0, 0.0, 0.0, 0.0)
|
},
|
},
|
}
|
</script>
|
|
<style scoped lang="less">
|
.ParentCentermapdiv {
|
display: fixed;
|
height: 100%;
|
width: 100%;
|
}
|
#Centermapdiv {
|
height: 100%;
|
width: 100%;
|
}
|
</style>
|