首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HTML5 EventSource将CZML流式导入CZML

使用HTML5 EventSource将CZML流式导入CZML
EN

Stack Overflow用户
提问于 2014-01-15 19:15:52
回答 1查看 4.6K关注 0票数 13

我目前正在研究使用as作为可视化个人项目数据的一种方式,实时更新将是一件很棒的事情。

在阅读维基时,我发现了this section,它概述了如何使用HTML来动态更新be中的对象。

我用Node.js编写了一个相当简单的服务器,它创建一个text/event-stream,定期发送对象位置的更新。这部分工作正常,我可以成功地连接到控制台并将此数据记录到控制台。

我的问题出在My上。我花了几个小时钻研文档(包括Github wiki和下载中包含的JSDoc文档),但我不知道如何将我的CZML添加到全球。使用源代码中提供的Cesium应用程序,我可以看到如何从本地和远程资源加载CZML文件,但是我不知道如何修改这种方法来摄取来自EventSource事件的CZML数据包。

我的CZML包示例:

代码语言:javascript
复制
{
  'id': 'myObject',
  'availability': '2014-01-15T00:00Z/2014-01-01T24:00Z',
  'point': {
    'color': {
      'rgba': [255, 255, 0, 255]
    },
    'outlineWidth': 2.0,
    'pixelSize': 3.0,
    'show': true
  },
  'position': {
    'cartesian': [0.0, -2957000.0, -840000.0, 5581000.0],
    'epoch': '2014-01-01T00:00Z',
    'interpolationAlgorithm': 'LINEAR',
    'interpolationDegree': 1
  }
}

我目前的方法如下:

代码语言:javascript
复制
var czmlStream;
var czmlStreamUrl = 'http://127.0.0.1:8080/czml-stream';

viewer.dataSources.add(czmlStream);

var czmlEventSource = new EventSource(czmlStreamUrl);
czmlEventSource.addEventListener('czml', function(czmlUpdate) {
  czmlStream.load(JSON.parse(czmlUpdate.data));
}, false);

不幸的是,这不起作用。我基于静态CZML文件的加载方式:

代码语言:javascript
复制
var source;
var sourceURL = 'http://127.0.0.1/czml-static.czml';

source.loadUrl(sourceURL).then(function() {
  viewer.dataSources.add(source);
}

有没有人知道我哪里错了,或者更好的是,知道正确的方法吗?我使用的是am b24,以防有什么不同。如果您需要从我这里获得更多信息,以便能够提供帮助,请提问,我将更新问题。

我试着在谷歌上搜索解决方案和示例代码,但除了描述如何使用EventSource的wiki page之外,我什么也找不到。

EN

回答 1

Stack Overflow用户

发布于 2014-02-04 07:24:03

我知道这个问题已经有几个星期了,但是你想过这个问题吗?从上面的示例中,我注意到的第一件事是您调用的是czmlStream.load而不是czmlStream.process。load清除现有数据,而process不清除。对于流,调用load只会显示最后一个数据包。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21135958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档