|
<template>
|
<div
|
id="mapdiv"
|
class="previewBox"
|
></div>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
levelArray: [
|
0, 40000000, 20000000, 10000000, 5000000, 2000000, 1000000, 500000,
|
250000, 200000, 100000, 50000, 17000, 9000, 5000, 2000, 1000, 500, 200,
|
100, 50, 25, 10, 0,
|
],
|
}
|
},
|
mounted() {
|
this.init3DMap();
|
},
|
methods: {
|
init3DMap() {
|
//地图初始化
|
window.sg = new SmartEarth.SGWorld("mapdiv", {
|
url: SmartEarthRootUrl + "Workers/image/earth.jpg",
|
licenseServer: window.sceneConfig.licenseServer,
|
});
|
|
window.Viewer = window.sg._Viewer;
|
|
// Viewer.camera.flyTo({
|
// destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000),
|
// });
|
|
Viewer.imageryLayers.addImageryProvider(
|
new Cesium.UrlTemplateImageryProvider({
|
url: gaoDeBaseUrl[1].url,
|
maximumLevel: 18
|
})
|
);
|
|
Viewer._enableInfoOrSelection = false;
|
//显示fps
|
Viewer.scene.debugShowFramesPerSecond = false;
|
//导航控件
|
window.sg.navControl("nav", false);
|
//比例尺
|
window.sg.navControl("scale", false);
|
//开启深度检测
|
// sg.Analysis.depthTestAgainstTerrain(true)
|
Viewer.scene.globe.depthTestAgainstTerrain = true;
|
|
var option = {
|
url: window.sceneConfig.SGUrl,
|
layerName: window.sceneConfig.mptName,
|
requestVertexNormals: true,
|
};
|
sg.Creator.sfsterrainprovider("", option, "", true, "");
|
|
window.elevationTool = new SmartEarth.ElevationTool(window.sg);
|
elevationTool.setContourColor("#F1D487");
|
if (this.$store.state.previewLayer) {
|
var res = this.$store.state.previewLayer;
|
if (res.layer.indexOf('.png')) {
|
console.log(res.layer)
|
var wkt = this.$wkt.parse(res.geom);
|
var height = this.getHeight(wkt.coordinates[2])
|
console.log(wkt)
|
window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider(
|
new Cesium.UrlTemplateImageryProvider({
|
url: res.layer,
|
maximumLevel: 18
|
})
|
|
);
|
debugger
|
Viewer.camera.flyTo({
|
destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height),
|
});
|
}
|
}
|
},
|
getHeight(level) {
|
if (level > 0 && level < 23) {
|
return this.levelArray[level]
|
}
|
return this.levelArray[this.levelArray.length - 1]
|
},
|
|
},
|
|
}
|
</script>
|
|
<style>
|
.previewBox {
|
width: 100%;
|
height: 100%;
|
}
|
</style>
|