无法为铯沙堡中的.train文件提供服务
Unable to serve.terrain files in cesium sandcastle
我正在学习使用CesiumJS生成三维地形。我使用铯地形生成器生成了.train文件,并将它们保存在"铯/应用程序"目录中,用于测试目的和避免CORS问题。每当我尝试生成地形时,我都会遇到错误,即即使我在指定位置添加了空文件,也找不到X:0 Y:0级别0的瓦片以及X:1 Y:0级0的瓦片。
这是一个老问题,但我在整个研究过程中偶然发现了它,所以我会详细介绍一下。
在您成功生成地形图块后,此时最明显的服务选项是https://github.com/geo-data/cesium-terrain-server.服务器是用Go编写的要求Go出现在系统上。它的构建旨在简化Cesium terrain Builder工具创建的地形图块的开发和测试。
我自己的目标是从Apache服务器上提供.terrain
瓦片,在fiddler中检查了铯地形服务器正在提供的服务,并发现了这种消息交换(查看Kevin Ring的回复)后,这变得非常容易。
除了CORS之外,地形文件本质上还需要具有MIME类型application/octet-stream
和gzip Content-Encoding: gzip
。请注意,只传递gzip
标头,而不传递gzip
—如果文件已被gzip映射,则再次提供这些文件。
在我的.htaccess
中,我有以下新线路:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
<filesMatch "(.*)'.terrain$">
ForceType application/octet-stream
Header set Content-Disposition attachment
Header set Content-Encoding: gzip
</filesMatch>
我还需要添加地形根文件夹中的layer.json
文件,其中包含以下内容:
{
"tilejson": "2.1.0",
"format": "heightmap-1.0",
"version": "1.0.0",
"scheme": "tms",
"tiles": ["{z}/{x}/{y}.terrain"]
}
现在一切都按预期进行。
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在php文件中获取$.post-ajax传递的值
- 直接下载文件,而不是从window.open(url)
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用压缩的JavaScript文件(不是运行时压缩)
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Javascript运行php文件,然后下载文件
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 我应该如何从xml文件构建一个javascript页面
- 无法为铯沙堡中的.train文件提供服务