Javascript 未出现在CesiumJS中的实体

Javascript 未出现在CesiumJS中的实体,javascript,cesium,Javascript,Cesium,我想用铯可视化一些3d数据点,但不想设置服务器。我下载了Cesium-1.34.zip,然后在我的桌面上解压。然后我制作了一个.html文件,它也位于我的桌面上,并从Cesium-1.34解压文件夹中提取资源。我包含了来自的一些示例代码来测试它。我的全部代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-

我想用铯可视化一些3d数据点,但不想设置服务器。我下载了Cesium-1.34.zip,然后在我的桌面上解压。然后我制作了一个.html文件,它也位于我的桌面上,并从Cesium-1.34解压文件夹中提取资源。我包含了来自的一些示例代码来测试它。我的全部代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <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="Cesium-1.34/Build/Cesium/Cesium.js"></script>
  <style>
      @import url(Cesium-1.34/Apps/Sandcastle/templates/bucket.css);
      @import url(Cesium-1.34/Build/Cesium/Widgets/widgets.css);
      html, body, #cesiumContainer {
          width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
      }
  </style>
</head>
<body>

<div class="fullSize" id="cesiumContainer"></div>
<div id="loadingOverlay"><h1>Loading...</h1></div>
<div id="toolbar"></div>

  <script>



    var viewer = new Cesium.Viewer('cesiumContainer', {
        baseLayerPicker: false,
        imageryProvider: new Cesium.BingMapsImageryProvider({
                    url : 'http://dev.virtualearth.net',
            key : 'al3lvBftgu3T17GnraSB~sDScxf9wA4dopWEvK2swfA~AlwqHWs4LzhiC2oOHAFYe9dZMVQtYCQHRGyC8Y6Hyq9-109ibBI9suhwFj0RoRAp'
                })
    });

var greenBox1 = viewer.entities.add({
    name : 'Green box with beveled corners and outline',
    polylineVolume : {
        positions : Cesium.Cartesian3.fromDegreesArrayHeights([-90.0, 32.0, 0.0,
                                                               -90.0, 36.0, 100000.0,
                                                               -94.0, 36.0, 0.0]),
        shape :[new Cesium.Cartesian2(-50000, -50000),
                new Cesium.Cartesian2(50000, -50000),
                new Cesium.Cartesian2(50000, 50000),
                new Cesium.Cartesian2(-50000, 50000)],
        cornerType : Cesium.CornerType.BEVELED,
        material : Cesium.Color.GREEN.withAlpha(0.5),
        outline : true,
        outlineColor : Cesium.Color.BLACK
    }
});

viewer.zoomTo(viewer.entities);

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

你好,世界!
@导入url(铯-1.34/Apps/Sandcastle/templates/bucket.css);
@导入url(Cesium-1.34/Build/Cesium/Widgets/Widgets.css);
html,正文,#cesiumContainer{
宽度:100%;高度:100%;边距:0;填充:0;溢出:隐藏;
}
加载。。。
var viewer=新铯.viewer('cesiumContainer'{
baseLayerPicker:错误,
imageryProvider:new Cesium.BingMapsImageryProvider({
网址:'http://dev.virtualearth.net',
图例:“al3lvBftgu3T17GnraSB~sDScxf9wA4dopWEvK2swfA~ALWQHWS4LZIC2OOHAFYE9DZMVQTYCHRGYC8Y6HYQ9-109ibBI9suhwFj0RoRAp”
})
});
var greenBox1=viewer.entities.add({
名称:“带斜角和轮廓的绿色方框”,
多段线体积:{
位置:铯。Cartesian3。从度数阵列高度([-90.0,32.0,0.0,
-90.0, 36.0, 100000.0,
-94.0, 36.0, 0.0]),
形状:[新铯.笛卡尔氮(-50000,-50000),
新的铯。Cartesian2(50000,-50000),
新的铯。Cartesian2(50000,50000),
新的铯卡特尔氮(-50000,50000)],
角落类型:铯。角落类型。斜角,
材料:铯。颜色。绿色。含α(0.5),
大纲:对,,
大纲颜色:铯。颜色。黑色
}
});
viewer.zoomTo(viewer.entities);
问题是应该出现在地球上的绿色盒子不在那里。我没有从开发者工具窗口得到任何错误。不过,我确实收到了一些警告和消息:

  • 警告:DOM7011:此页上的代码禁用了反向和正向缓存
  • 消息:HTML1300:发生导航
  • 消息:WEBGL11258:暂时切换到软件渲染以显示WebGL内容。此应用程序使用Cesium的默认Bing地图键。请尽快为应用程序创建新密钥

关于密钥的消息很奇怪,因为我肯定在代码中使用了我自己的密钥,尽管我不认为这会干扰实体,因为它不会出现任何错误。在这一点上我很困惑,我想如果一个实体不能被显示,就会出现错误,但我什么也没有得到。这可能是因为它确实需要在服务器上运行。关于我遗漏了什么或者如何仅通过本地配置在CesiumJS上绘制实体的任何提示?

Bing键错误消息仍然会显示,因为您的查看器上显示了Geocoder小部件(默认情况下),Geocoder使用Bing API进行地理编码。在构造Cesium.Viewer之前,您可以通过预先指定密钥来修复它,如下所示:

Cesium.BingMapsApi.defaultKey = 'your_key_here';

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false,
    imageryProvider: new Cesium.BingMapsImageryProvider({
        url : 'http://dev.virtualearth.net'
    })
});
另外,不支持直接从
文件://
协议运行Cesium,因为Cesium严重依赖于纹理、web工作者脚本、JSON文件等资产。典型的浏览器会阻止文件中的JavaScript访问其他文件。因此,Cesium附带了一个小型的
server.js
文件,您可以使用NodeJS运行该文件,以使小型开发服务器在本地承载Cesium的副本。有关更多详细信息,请参阅


遵循此建议后,原始问题中的“绿框”代码应该可以正常运行。

Bing键错误消息仍然会显示,因为您的查看器上显示了Geocoder小部件(默认情况下),Geocoder使用Bing API进行地理编码。在构造Cesium.Viewer之前,您可以通过预先指定密钥来修复它,如下所示:

Cesium.BingMapsApi.defaultKey = 'your_key_here';

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false,
    imageryProvider: new Cesium.BingMapsImageryProvider({
        url : 'http://dev.virtualearth.net'
    })
});
另外,不支持直接从
文件://
协议运行Cesium,因为Cesium严重依赖于纹理、web工作者脚本、JSON文件等资产。典型的浏览器会阻止文件中的JavaScript访问其他文件。因此,Cesium附带了一个小型的
server.js
文件,您可以使用NodeJS运行该文件,以使小型开发服务器在本地承载Cesium的副本。有关更多详细信息,请参阅


遵循此建议后,原始问题中的“绿框”代码应该运行正常。

谢谢!我不确定通过在本地运行整个设置是如何沙盒化的。现在我不必浪费时间在没有服务器的情况下让它工作。谢谢!我不确定通过在本地运行整个设置是如何沙盒化的。现在,我不必浪费时间试图让它在没有服务器的情况下工作。