| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | <div id="viewer-container" class="viewer-container"></div>
<script>
       DC.config.baseUrl = '../libs/dc-sdk/resources/'
      let viewer = new DC.Viewer('viewer-container')
    viewer.setOptions({
      shadows:true,
      globe:{
        baseColor:DC.Color.BLACK
      }
    })
    let layer = new DC.TilesetLayer('layer').addTo(viewer)
    let fs = `
       varying vec3 v_positionEC;
       void main(void){
           vec4 position = czm_inverseModelView * vec4(v_positionEC,1); // 位置
           float glowRange = 50.0; // 光环的移动范围(高度)
           gl_FragColor = vec4(0, 1.0, 1.0,0.8); // 颜色
           gl_FragColor *= vec4(vec3((position.z + 20.0) / 30.0), 0.2); // 渐变
           // 动态光环
           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);
       }
      `
    let tileset1 = new DC.Tileset(
      '//lab.earthsdk.com/model/27af3f70003311eaae02359b3e5d0653/tileset.json'
    )
    tileset1.setCustomShader(fs)
    let tileset2 = new DC.Tileset(
      '//lab.earthsdk.com/model/212bc470003311eaae02359b3e5d0653/tileset.json'
    )
    tileset2.setCustomShader(fs)
    let tileset3 = new DC.Tileset(
      '//lab.earthsdk.com/model/1b91bf10003311eaae02359b3e5d0653/tileset.json'
    )
    tileset3.setCustomShader(fs)
    layer
      .addOverlay(tileset1)
      .addOverlay(tileset2)
      .addOverlay(tileset3)
    let layer1 = new DC.VectorLayer('layer1')
    viewer.addLayer(layer1)
    let circle = new DC.Circle('116.38789554,39.89911368',500)
    circle.setStyle({
      material: new DC.ImageMaterialProperty({
        image: '../assets/icon/circleScan.png',
        color: new DC.Color(0, 1.0, 1.0,0.8),
        transparent: true,
      }),
      perPositionHeight: true,
      outline: true,
      outlineColor: new DC.Color(0, 1.0, 1.0,0.8)
    })
    circle.rotateAmount = 3
    layer1.addOverlay(circle)
    let layer2 = new DC.PrimitiveLayer('layer').addTo(viewer)
    let scanCircle= new DC.ScanCirclePrimitive('116.3994748,39.90784756',800)
    scanCircle.setStyle({
      color:new DC.Color(0, 1.0, 1.0,0.5)
    })
    layer2.addOverlay(scanCircle)
    viewer.flyToPosition('116.3904847,39.8773787,2807.38,0,-48.89')
  }
</script>
 |