首页 / 浏览问题 / 三维GIS / 问题详情
scene is required!
63EXP 2018年04月28日

用WebGL调用服务,报scene is required!

1个回答

具体进行了什么操作呢?调试的是什么代码?
5,560EXP 2018年04月28日

代码如下,飞行代码也实现不了,而且每个浏览器报错不太一样。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <title>庐山东林寺场景</title>
    <link href="css/widgets.css" rel="stylesheet">
    <script type="text/javascript" src="js/require.min.js" data-main="js/main"></script>
    <link href="Build/Cesium/Widgets/widgets.css" rel="stylesheet">
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>

    <style>
        html, body, #cesiumContainer {
            width: 100%; height: 100%; margin: 0; padding: 0;float: right;overflow: hidden;
        }

        .tools{
            width: 20px;
            height: 20px;
            margin: 10px;
        }
        .tool{
            width: 60px;
            height: 30px;
        }
        
    </style>

    <style type="text/css">
        #header {
            background-color:#FF9900;
            color:black;
            text-align:center;
            padding:20px;
        }
        #left {
            width:16%;
            height: 100%;
            float: left;
            background-color: #eeeeee;     
        }
        #cesiumContainer {
            height: 100%;
            width: 84%;
            float: right;    
        }
    </style>
        
        
</head>
<body>
<div id="header"><h3 style="color: #5F9EA0;">庐山东林寺三维场景</h3></div>
<div id="cesiumContainer"></div>
<div id="left">
     <div id="toolbar" style="left : 0px; top : 5px;position: relative;width: 250px;height: 50px;float: left;">
         <p>飞行控制模块</p>
         <button id="play" class="tool" title="开始">开始</button>
         <button id="pause" class="tool" title="暂停">暂停</button>
         <button id="stop" class="tool" title="停止">停止</button>
    </div>
    <div style="width: 100px;position: relative;width: 40px;float: left;left:0px; margin-top: 50px;">
        <select id="stopList" >
            <!--<option disabled selected value>&#45;&#45;选择站点&#45;&#45;</option>-->
        </select>
    </div>
</div>
<script type="text/javascript">
        var viewer,url;
        url = "http://localhost:8090/iserver/services/3D-DLS/rest/realspace/datas/Config/config";
        var sceneUrl="http://localhost:8090/iserver/services/3D-DLS/rest/realspace";
        var flyManager;
        function onload(Cesium) {
            viewer = new Cesium.Viewer('cesiumContainer');
            var scene = viewer.scene;
            
            var widget = viewer.cesiumWidget;
            var toolbar = document.getElementById('toolbar')
           try{
                 var promise = scene.addS3MTilesLayerByScp(url,{ name: 'DLS'});
                 
                 Cesium.when(promise).then(function(layer){
                     scene.camera.setView({  destination : Cesium.Cartesian3.fromDegrees(115.943022878770010,29.602493888870001,200), orientation : {
                    heading:0.1,
                    pitch : 0.001,
                    roll : 0
                }
                     });      
                      },function(e){
            if (widget._showRenderLoopErrors) {
                var title = 'An error occurred while rendering.  Rendering has stopped.';
                widget.showErrorPanel(title, undefined, e);
            }
        });
           }
        catch(e){
            if (widget._showRenderLoopErrors) {
                var title = 'An error occurred while rendering.  Rendering has stopped.';
                widget.showErrorPanel(title, undefined, e);
            }
        }


         
         
        var routes = new Cesium.RouteCollection();
        var fpfUrl ='http://localhost:8001/lushan/fpf/DLSflyroute.fpf';
        routes.fromFile(fpfUrl);                    
        //初始化飞行管理
        var flyManager = new Cesium.FlyManager(scene,routes);   

        $('#play').onclick(function(){
            flyManager && flyManager.play();
        });
        $('#pause').onclick(function(){
            flyManager && flyManager.pause();
        });
        $('#stop').onclick(function(){
            flyManager && flyManager.stop();    
        });
    }
    </script>
</body>
</html>

网页是本地启动还是走服务器启动的?

还有设断点看看吧,看看是哪里报的错?

网页是服务启动的,经测试是代码走到

$('#play').onclick(function(){ flyManager && flyManager.play(); }); $('#pause').onclick(function(){ flyManager && flyManager.pause(); }); $('#stop').onclick(function(){ flyManager && flyManager.stop(); });

这一部分就走不下去了

请问是代码问题还是?

把onclick换成click试试呢?

飞行管理可以再参考下这边的代码:

http://support.supermap.com.cn:8090/webgl/examples/editor.html#flyRoute

换成click,还是不行
现在还是同样的地方报错吗?

或者您直接看下我上面发的示例,看看会不会报错呢?

如果没报错,将里面的url换成你们的url行不行呢?

我已把网址换成我的,场景可以加载出来

但是,缺少飞行按钮,所以无法飞行;可以获取到站点信息,但是切换不了站点

1、缺少飞行按钮的,可能是因为没相应的按钮图片,换一个按钮图片url试试

2、切换不了站点的问题,设断点看看是哪句报了错?
替换了网址,修改了一些错误,已经能实现飞行功能了
...