什么是最轻的使用铯的方法?

时间:2015-07-02 14:06:52

标签: javascript cesium

我有兴趣使用Cesium来构建带有自定义图块的3D地球,但是根据"get started" instructions here,您似乎必须下载一个巨大的30mb目录并将整个内容包含在您的项目让它正确运行。这是真的?我可以不只是包含Cesium.js并像这样运行吗?无论如何,我不需要80%的UI元素。

在#34;结束时开始"教程,它们似乎表明你需要运行的只是这些部分:

<script src="Cesium/Cesium.js"></script>

@import url(Cesium/Widgets/widgets.css);

<div id="cesiumContainer"></div>

var viewer = new Cesium.CesiumViewer('cesiumContainer');

但是当我设置这些位时,我得到了这个错误:&#34;定义未定义&#34;和#34;铯未定义&#34;。

运行Cesium的最轻微的方法是什么?

1 个答案:

答案 0 :(得分:9)

该教程肯定需要更新,我会做一个说明来清理它。 (对于初学者来说,它底部有一个错误,因为Cesium.CesiumViewer应该只是Cesium.Viewer。)话虽如此,但这里有什么&#39;包含在拉链中以及您希望/需要进行实际开发的内容。

  • 应用 - &gt;示例应用程序。
  • 来源 - &gt;用于模块开发的AMD模块(requirejs,browserify等)也被示例应用程序使用。
  • 规格 - &gt;单元测试。
  • ThirdParty - &gt;上述所需的第三方库。
  • 构建/应用 - &gt;采样应用程序的内置和缩小版本。
  • 构建/文档 - &gt;参考文档。

这留下了两个目录,构建/ Cesium 构建/ CesiumUnminified ,我将在一分钟内讨论。

但首先,对于您的问题,技术上正确的答案是创建最轻的基于Cesium的应用程序,使用我们提供的AMD模块。这意味着您只需要在开发时包含Source文件夹,然后您的构建过程将创建应用程序的缩小和连接版本以进行部署。使用模块确保您只包含您正在使用的Cesium功能。这与传统的&#34;不同。 Web开发实践,通过页面底部的脚本标记以正确的顺序包含所有代码和库的缩小版本。模块每天都在增长,而ES6和像Babel这样的构建系统正在慢慢接管Web开发环境。我们自己使用requirejs,但有很多选择。

以这种方式构建的应用程序示例是Build \ Apps \ CesiumViewer中的Cesium Viewer示例(源代码位于Apps \ CesiumViewer中)。整个构建的应用程序(未压缩)为8.77 megs,几乎暴露了每个Cesium功能和功能。 3.65兆这是默认情况下发布的自然地球图像和其他数据文件,如果您使用触发它的功能,应用程序只会根据需要缩小。通过在服务器端压缩压缩,大大减少了剩余的JavaScript。要自己查看,请运行最新的Cesium Viewer link并在浏览器开发工具中打开网络选项卡。整个应用程序仅吸收2.2兆(这包括从Bing加载的初始图像.Cesium部分只有大约426kb。如果你开始加载GeoJSON或KML文件,它可能会减少一些额外的kb,但不会太多。< / p>

由于基于模块的方法需要额外的设置,并且在整个Web开发中仍然不常见,我们还提供Build / Cesium和Build / CesiumUnminified文件夹。这些包括完全缩小和连接的Cesium版本,它们将所有模块都压缩到一个文件中。但是,您需要的不仅仅是Cesium.js文件以进行部署。以下是这些文件夹的细分:

  • 构建/资产 - &gt;随Cesium一起提供的默认图像/资产(用于ICRF转换的图像/图标/星形/数据)。根据您配置Cesium应用程序的方式,根据需要下拉该数据。这是3.65美元,但chanes是你的应用程序将只触及几kb(取决于你使用的功能)。我建议部署整个目录,而不是尝试确定部署到服务器的内容(但正如我所说,客户端可能永远无法检索到大部分目录)。
  • 构建/工作人员构建/第三方 - &gt;这些包含了Cesium使用的连接Web工作者。这包括图像/地形使用的代码,几何曲面细分和zip文件处理。它根据需求被拉下来,即使你做了一些事情要求全部,它仍然是一个巨大的gzip。由于WebWorkers的性质,这些文件不能包含在主Cesium.js中(我们认为这是规范中的一个难点)。
  • 构建/小工具 - &gt;包含连接的CSS,包括inidividual widget形式和组合的widgets.css文件。我建议只包括widgets.css并完成它(4kb gzipped);但如果您真的关心大小,可以删除单个css文件。此文件夹还包含各种小部件使用的图标。如果需要,它们将再次从服务器中检索。

作为他们的名字建议,Build/CesiumBuild/CesiumUnminified都是完全相同的。主要区别在于Build / Cesium已经缩小并且更小。它也更快,因为它删除了大量的调试代码以提高性能。我们的官方建议是针对CesiumUnminified开发并使用Cesium进行部署。这样可以更容易开发,因为如果代码中存在问题,您将获得更好的错误处理和callstack。

以这种方式构建的应用程序示例是Hello World应用程序link。实际上与我上面链接的构建的Cesium Viewer应用程序没有太大的差异,但这是因为它们本质上是以两种不同方式构建的相同应用程序。

所以这个答案最终比我想要的要长很多,但Web开发是多种多样的,Cesium试图尽力支持所有不同的方法。 Cesium本身也非常雄心勃勃,因此我们必须克服其他项目从未遇到过的许多障碍。绝对有改进的余地,但我们会尽力确保Cesium在提供它所具有的功能的同时尽可能轻松。我认为在2.0版本中我们可能会更进一步,并尝试使模块更加模块化。

我希望能回答你的问题和疑虑。