【发布时间】:2020-12-27 05:45:25
【问题描述】:
之前好像有人问过这个问题,但我一直找不到合适的例子。我熟悉 PHP,但对 Javascript 不熟悉,无法弄清楚如何流式传输 CZML。
我想在地图上显示大约 6500 个资产。为了防止网页在加载完所有内容后显示(并测试用户的耐心),我希望它显示然后在后台加载资产。
谁能给我举个例子来说明如何做到这一点? 我可以设法像这样加载 czml 文件:
var czmlDataSource = new Cesium.CzmlDataSource();
viewer.dataSources.add(czmlDataSource);
czmlDataSource.loadUrl('some_file.czml');
但据我所知 :-( 我知道我应该在某个地方使用 .processUrl 并且我知道我应该在 CZML 文件中使用不同的数据包,所以我的 CZML 文件看起来像这样:
[
event: czml
data: {
"id":"document",
"version":"1.0"
}
event: czml
data: {
"id":"1",
"billboard":{
"image":"label.png",
"verticalOrigin":"BOTTOM",
"show":true
},
"position":{
"cartographicDegrees":[
20.0, 50.0, 0
]
}
}
event: czml
data: {
"id":"2",
"billboard":{
"image":"label.png",
"verticalOrigin":"BOTTOM",
"show":true
},
"position":{
"cartographicDegrees":[
10.0, 52.0, 0
]
}
}
]
如果有人可以提供一个工作示例,那就太好了,比如一个 .czml 文件和一个 .js 文件。谢谢!
【问题讨论】:
-
你能澄清一下你的问题吗?您是尝试通过 REST/Websocket 使用服务器流式传输 6.500 点,还是从单个文件中提取 6.500 点?如果是后者,您只需加载文件一次,然后循环遍历元素。 CZML是基于JSON的,所以可以这样处理github.com/AnalyticalGraphicsInc/cesium/wiki/CZML-Guide
-
发布的 CZML 文件开头和结尾的括号不能是真实事件流的一部分。