| @@ -19,7 +19,7 @@ | |||
| viewer = new DC.Viewer('viewer-container') | |||
| let baselayer_midnight = DC.ImageryLayerFactory.createAmapImageryLayer({style:'img'}) | |||
| viewer.addBaseLayer(baselayer_midnight) | |||
| effect = new DC.Effect(viewer) | |||
| effect = new DC.Effect(viewer) | |||
| effect.silhouette.enable= true | |||
| addGuiController() // add controller | |||
| } | |||
| @@ -30,9 +30,10 @@ | |||
| } | |||
| let gui = new dat.GUI() | |||
| gui.add(controls,'enable').onChange(value=>{ | |||
| effect.silhouette.enable=value | |||
| effect.silhouette.enable=value | |||
| }) | |||
| } | |||
| DC.ready({ | |||
| baseUrl:'../libs/dc-sdk/resources/' | |||
| }).then(initViewer) | |||
| @@ -26,29 +26,77 @@ | |||
| style: 'img', | |||
| crs:'WGS84' | |||
| }) | |||
| viewer.addBaseLayer( baseLayer) | |||
| weather = new DC.Weather() | |||
| // viewer.weather.cloud.enable = true | |||
| // viewer.weather.cloud.rotateAmount=0.02 | |||
| viewer.addBaseLayer(baseLayer) | |||
| weather = new DC.Weather(viewer) | |||
| addGuiController() // add controller | |||
| } | |||
| function addGuiController(){ | |||
| let controls = { | |||
| enable: true, | |||
| rotateAmount : 0.02, | |||
| cloudEnable: false, | |||
| cloudRotateAmount: 0, | |||
| rainEnable: false, | |||
| rainSpeed: 10.0, | |||
| snowEnable: false, | |||
| snowSpeed: 10.0, | |||
| rainMixNum: 0.5, | |||
| fogEnable: false, | |||
| fogColor: "#000000", | |||
| fogNear: 10, | |||
| fogFar: 200, | |||
| } | |||
| let gui = new dat.GUI(); | |||
| gui.add(controls,'enable').onChange(value=>{ | |||
| viewer.weather.cloud.enable = value | |||
| let cloud = gui.addFolder("cloud") | |||
| cloud.add(controls,'cloudEnable').name("enable").onChange(value=>{ | |||
| weather.cloud.enable = value | |||
| }) | |||
| cloud.add(controls,'cloudRotateAmount',0,1,0.1).name("rotateAmount").onChange(value=>{ | |||
| weather.cloud.rotateAmount = Number(value) | |||
| }) | |||
| let rain = gui.addFolder("rain") | |||
| rain.add(controls,'rainEnable').name('enable').onChange(value=>{ | |||
| weather.rain.enable = value | |||
| }) | |||
| rain.add(controls,'rainSpeed',1,20,1).name('speed').onChange(value=>{ | |||
| weather.rain.speed = Number(value) | |||
| }) | |||
| rain.add(controls,'rainMixNum',0,1,0.1).name('mixNum').onChange(value=>{ | |||
| weather.rain.mixNum = Number(value) | |||
| }) | |||
| gui.add(controls,'rotateAmount',0,0.1).step(0.01).onChange(value=>{ | |||
| viewer.weather.cloud.rotateAmount = value | |||
| let snow = gui.addFolder("snow") | |||
| snow.add(controls,'snowEnable').name('enable').onChange(value=>{ | |||
| weather.snow.enable = value | |||
| }) | |||
| snow.add(controls,'snowSpeed',1,20,1).name('speed').onChange(value=>{ | |||
| weather.snow.speed = Number(value) | |||
| }) | |||
| let fog = gui.addFolder("fog") | |||
| fog.add(controls,'fogEnable').name('enable').onChange(value=>{ | |||
| weather.fog.enable = value | |||
| }) | |||
| fog.addColor(controls,'fogColor').onChange(value=>{ | |||
| weather.fog.color = DC.Color.fromCssColorString(value) | |||
| }) | |||
| fog.add(controls,'fogNear',1,20,1).name('near').onChange(value=>{ | |||
| weather.fog.fogByDistance = { | |||
| near: Number(value), | |||
| far: Number(controls.fogFar) | |||
| } | |||
| }) | |||
| fog.add(controls,'fogFar',0,200000,10).name('far').onChange(value=>{ | |||
| weather.fog.fogByDistance = { | |||
| near: Number(controls.fogNear), | |||
| far: Number(value) | |||
| } | |||
| }) | |||
| } | |||
| DC.ready({ | |||
| DC.ready({ | |||
| baseUrl:'../libs/dc-sdk/resources/' | |||
| }).then(initViewer) | |||
| </script> | |||
| @@ -398,11 +398,7 @@ const EXAMPLE_LIST = [ | |||
| { | |||
| name: '动态图标', | |||
| page: 'dynamic_billboard.html', | |||
| }, | |||
| { | |||
| name: '标绘', | |||
| page: 'plot.html', | |||
| }, | |||
| } | |||
| ], | |||
| }, | |||
| { | |||
| @@ -523,6 +519,20 @@ const EXAMPLE_LIST = [ | |||
| }, | |||
| ], | |||
| }, | |||
| { | |||
| name: '场景工具', | |||
| folder: 'tools', | |||
| children: [ | |||
| { | |||
| name: '标绘', | |||
| page: 'plot.html', | |||
| }, | |||
| { | |||
| name: '测量', | |||
| page: 'measure.html', | |||
| }, | |||
| ], | |||
| }, | |||
| { | |||
| name: '场景动画', | |||
| folder: 'animation', | |||
| @@ -573,6 +583,10 @@ const EXAMPLE_LIST = [ | |||
| name: '场景效果', | |||
| folder: 'effect', | |||
| children: [ | |||
| { | |||
| name: '天气效果', | |||
| page: 'weather.html', | |||
| }, | |||
| { | |||
| name: '扫描圆', | |||
| page: 'circle_scan.html', | |||
| @@ -0,0 +1,125 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0"> | |||
| <title>dc-example</title> | |||
| <script src='/libs/dc-sdk/dc.min.js'></script> | |||
| <link href='/libs/dc-sdk/dc.min.css' type='text/css' rel='stylesheet'> | |||
| <link href='../index.css' type='text/css' rel='stylesheet'> | |||
| </head> | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <div class="btn-box"> | |||
| <ul> | |||
| <li><button onclick="gotoModel()">定位模型</button></li> | |||
| <li><button onclick="deactivate()">清空</button></li> | |||
| </ul> | |||
| <ul> | |||
| <li><button onclick="calcDistance()">空间测距</button></li> | |||
| <li><button onclick="calcArea()">空间面积</button></li> | |||
| <li><button onclick="calcAngle()">角度</button></li> | |||
| <li><button onclick="calcHeight()">高度</button></li> | |||
| <li><button onclick="calcHeading()">偏航角度</button></li> | |||
| <li><button onclick="calcTriangleHeight()">三角测量</button></li> | |||
| </ul> | |||
| <ul> | |||
| <li><button onclick="distanceSurface()">贴地测距</button></li> | |||
| <li><button onclick="areaSurface()">贴地面积</button></li> | |||
| <li><button onclick="calcModelAngle()">贴物角度</button></li> | |||
| <li><button onclick="calcModelHeight()">贴物高度</button></li> | |||
| <li><button onclick="calcModelTriangleHeight()">贴物三角</button></li> | |||
| </ul> | |||
| </div> | |||
| <script> | |||
| let viewer = undefined | |||
| let tileset = undefined | |||
| let measure = undefined | |||
| function calcDistance(){ | |||
| measure.distance() | |||
| } | |||
| function distanceSurface(){ | |||
| measure.distanceSurface() | |||
| } | |||
| function calcArea(){ | |||
| measure.area() | |||
| } | |||
| function areaSurface(){ | |||
| measure.areaSurface() | |||
| } | |||
| function calcAngle(){ | |||
| measure.angle() | |||
| } | |||
| function calcModelAngle(){ | |||
| measure.angle({ | |||
| clampToModel:true | |||
| }) | |||
| } | |||
| function calcHeight(){ | |||
| measure.height() | |||
| } | |||
| function calcModelHeight(){ | |||
| measure.height({ | |||
| clampToModel:true | |||
| }) | |||
| } | |||
| function calcHeading(){ | |||
| measure.heading() | |||
| } | |||
| function areaHeight(){ | |||
| measure.areaHeight() | |||
| } | |||
| function calcTriangleHeight(){ | |||
| measure.triangleHeight() | |||
| } | |||
| function calcModelTriangleHeight(){ | |||
| measure.triangleHeight({ | |||
| clampToModel:true | |||
| }) | |||
| } | |||
| function deactivate(){ | |||
| measure.deactivate() | |||
| } | |||
| function gotoModel(){ | |||
| viewer.flyTo(tileset) | |||
| } | |||
| function initViewer() { | |||
| viewer = new DC.Viewer('viewer-container') | |||
| let baselayer = DC.ImageryLayerFactory.createAmapImageryLayer({ | |||
| style:'img', | |||
| crs:"WGS84" | |||
| }) | |||
| viewer.addBaseLayer(baselayer) | |||
| measure = new DC.Measure(viewer) | |||
| let layer = new DC.TilesetLayer('layer').addTo(viewer) | |||
| tileset = new DC.Tileset( | |||
| '//resource.dvgis.cn/data/3dtiles/dayanta/tileset.json' | |||
| ) | |||
| tileset.setHeight(-420) | |||
| layer.addOverlay(tileset) | |||
| viewer.flyTo(tileset) | |||
| } | |||
| DC.ready({ | |||
| baseUrl:'../libs/dc-sdk/resources/' | |||
| }).then(initViewer) | |||
| </script> | |||
| </body> | |||
| </html> | |||