From c6d2dd3ea14e1603d898d70299f3aa6f2eb17649 Mon Sep 17 00:00:00 2001
From: jxdnsong <592566207@qq.com>
Date: Tue, 25 Oct 2022 16:14:57 +0800
Subject: [PATCH] 更换首页底图
---
src/pcviews/homepage/Map/index.vue | 97 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 71 insertions(+), 26 deletions(-)
diff --git a/src/pcviews/homepage/Map/index.vue b/src/pcviews/homepage/Map/index.vue
index fd34025..47f5fbc 100644
--- a/src/pcviews/homepage/Map/index.vue
+++ b/src/pcviews/homepage/Map/index.vue
@@ -28,40 +28,85 @@
function initViewer () {
global.viewer = new DC.Viewer('viewer-container')
- // 天地图 影像
- global.viewer.imageryLayers.addImageryProvider(
- new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
- url: 'https://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=789e558be762ff832392a0393fd8a4f1',
- subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
- format: 'image/jpeg',
- show: true,
- maximumLevel: 18
- })
- )
-
// 去除水印
const primitiveArr = global.viewer.scene.primitives._primitives
global.viewer.scene.primitives.remove(primitiveArr[0])
- global.viewer.camera.setView({
- // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
- // fromDegrees()方法,将经纬度和高程转换为世界坐标
- destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 116.027429, 28.681978, 800
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
+
+ global.viewer.setOptions({
+ globe:{
+ baseColor:DC.Color.BLACK
}
})
- // that.addBaseLayer()
+ let layer_build = new DC.TilesetLayer('layer_build').addTo(global.viewer)
+ let build = new DC.Tileset(
+ '//resource.dvgis.cn/data/3dtiles/ljz/tileset.json',
+ {skipLevels:true}
+ )
+ let fs = `
+ varying vec3 v_positionEC;
+ void main(void){
+ vec4 position = czm_inverseModelView * vec4(v_positionEC,1); // 位置
+ float glowRange = 100.0; // 光环的移动范围(高度)
+ gl_FragColor = vec4(0.2, 0.5, 1.0, 1.0); // 颜色
+ gl_FragColor *= vec4(vec3(position.z / 100.0), 1.0); // 渐变
+ // 动态光环
+ float time = fract(czm_frameNumber / 360.0);
+ time = abs(time - 0.5) * 2.0;
+ float diff = step(0.005, abs( clamp(position.z / glowRange, 0.0, 1.0) - time));
+ gl_FragColor.rgb += gl_FragColor.rgb * (1.0 - diff);
+ }
+ `
+ build.setCustomShader(fs)
+ layer_build.addOverlay(build)
+ let layer = new DC.PrimitiveLayer('layer').addTo(global.viewer)
+ let positions = generatePosition(50,true)
+ positions = positions.concat(generatePosition(50,))
+ positions.forEach(item=>{
+ let position = DC.Position.fromObject(item)
+ let end = position.copy()
+ end.alt = 5000 * Math.random()
+ let line = new DC.FlowLinePrimitive([position,end],0.5)
+ line.setStyle({
+ speed: 6 * Math.random(),
+ color: DC.Color.fromCssColorString("rgb(141,172,172)"),
+ percent:0.1,
+ gradient:0.01
+ })
+ layer.addOverlay(line)
+ })
+ global.viewer.flyToPosition("121.4941629,31.2091462,1859.56,0,-28.71")
- global.viewer.use(new global.DC.Measure())
+ // // 天地图 影像
+ // global.viewer.imageryLayers.addImageryProvider(
+ // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ // url: 'https://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=789e558be762ff832392a0393fd8a4f1',
+ // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+ // format: 'image/jpeg',
+ // show: true,
+ // maximumLevel: 18
+ // })
+ // )
+
+ // global.viewer.camera.setView({
+ // // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ // 116.027429, 28.681978, 800
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // // that.addBaseLayer()
- // that.addMxTileset()//师大需要使用
+ // global.viewer.use(new global.DC.Measure())
+
+ // // that.addMxTileset()//师大需要使用
}
global.DC.ready(initViewer)
--
Gitblit v1.9.3