var viewer function onloadCesium var viewer new Cesium

  • Slides: 13
Download presentation

可视域分析开发思路 第三步:加载数据 var viewer; function onload(Cesium) { var viewer = new Cesium. Viewer('cesium. Container');

可视域分析开发思路 第三步:加载数据 var viewer; function onload(Cesium) { var viewer = new Cesium. Viewer('cesium. Container'); var scene = viewer. scene; var promise=scene. open('http: //localhost: 8090/iserver/services/3 Djingjin-CBD/rest/realspace'); Cesium. when(promise, function (layer) { scene. camera. set. View({ destination : Cesium. Cartesian 3. from. Degrees(116. 45811047655491, 39. 912298502855606, 2000) }); }) } P 9

可视域分析开发思路 构建可视域对象 • 1)new Cesium. View. Shed 3 D(scene) • 2)可视域分析参数, 如distance,pitch, horizontal. Fov,

可视域分析开发思路 构建可视域对象 • 1)new Cesium. View. Shed 3 D(scene) • 2)可视域分析参数, 如distance,pitch, horizontal. Fov, vertical. Fov等有默 认值 选取观察点 • new Cesium. Point. Handler(vi ewer); //用于鼠标设置 观察点 • 添加事件监听 point. Handler. draw. Comp leted. Event. add. Event. List ener(function(point) • 监听函数中设置观察点 viewshed 3 D. view. Positio n • 执行可视域分析 viewshed 3 D. build(); 鼠标设置可视域距离 • 屏幕事件监听new Cesium. Screen. Space. Eve nt. Handler(scene. canvas) • 鼠标移动事件处理-计 算观察点与鼠标位置间 的距离即可视域可视距 离 handler. set. Input. Action(f unction(e){//计算距离 }, Cesium. Screen. Space. E vent. Type. MOUSE_MO VE); • 右键结束,显示参数面 板 handler. set. Input. Action(f unction(e){//参数面板 }, Cesium. Screen. Space. E vent. Type. RIGHT_CLIC K); 灵活改变可视域分 析参数 • 参数设置面板-wrapper • 定义object,设置分析参数 属性var view. Model = { direction: 90. 0, …} • 监控属性变化 Cesium. knockout. track(view Model) • 绑定面板 Cesium. knockout. apply. Bind ings(view. Model, toolbar); • 监听变化并给viewshed 3 D 赋值 Cesium. knockout. get. Observa ble(view. Model, 'direction'). su bscribe( function(new. Value) { viewshed 3 D. direction = parse. Float(new. Value }); P 11