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