1 votos

Cambiar el modo de escena en Cesio cada intervalo

Tengo una tarea que Quiero cambiar el modo de escena en Cesio cada 1 minuto. Por ejemplo, digamos que por defecto el modo de escena es 3D. Después de 1 minuto, cambiará a modo 2D y luego a otro. He utilizado la función de actualización para cambiar el modo de escena. Aquí está mi código de abajo.

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <!-- Use correct character set. -->
      <meta charset="utf-8">
      <!-- Tell IE to use the latest, best version. -->
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <!-- Make the application on mobile take up the full browser screen and disable user scaling. -->
      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
      <title>Hello World!</title>
      <script src="../Build/Cesium/Cesium.js"></script>
      <style>
          @import url(../Build/Cesium/Widgets/widgets.css);
          html, body, #cesiumContainer {
              width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
          }
      </style>
    </head>
    <body>
      <div id="cesiumContainer"></div>
      <script type="text/javascript">
            var viewer = new Cesium.Viewer('cesiumContainer');
    var scene = viewer.scene;
    scene.mode= Cesium.SceneMode.SCENE3D;
    var scenename = "3D";
    console.log("Scene Mode 3D");

     //updateFromServer();
    var intervalID = window.setInterval(updateFromServer, 6000);

    function updateFromServer() {
        if (scenename = "3D")
        {
            var scene = viewer.scene;
            scene.mode= Cesium.SceneMode.SCENE2D;
            //document.cookie = "SceneMode=2D;";
            scenename = "2D";
            console.log("Scene Mode 2D");
        }
        else
        {
            var scene = viewer.scene;
            scene.mode= Cesium.SceneMode.SCENE3D;
            scenename = "3D";
            console.log("Scene Mode 3D");
        }
    }

      </script>
    </body>
    </html>

No funciona excepto mi console.log.

¿Puede ayudarme?

2voto

Phil Puntos 1

Estás usando un solo signo '=' en la condición que asigna el nombre de la escena a "3D". En su lugar, en su declaración if utilice '===' para comparar el valor de scenemane . Utilice

 if (scenename === "3D"){ 
//the rest of the code
}

p.d. tampoco es necesario volver a declarar la escena var scene = viewer.scene; dentro de la función updateFromServer().

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X