首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在加载后访问CzmlDataSource中的实体

如何在加载后访问CzmlDataSource中的实体
EN

Stack Overflow用户
提问于 2015-09-23 10:24:33
回答 1查看 2.1K关注 0票数 4

我想访问一些实体在我的czml数据源,以保持跟踪在查看器,但在加载后,作为相机的选项之一。我知道我可以在加载时访问czml文件中的实体,但我不知道如何在加载后访问它们。这里我有一个例子:

代码语言:javascript
运行
AI代码解释
复制
  var viewer = new Cesium.Viewer('cesiumContainer'); 
  var czmlDataSource = new Cesium.CzmlDataSource();
  viewer.dataSources.add(czmlDataSource);
  czmlDataSource.load('../../SampleData/Vehicle.czml').then(function(){
         var myEntity= czmlDataSource.entities.getById('Vehicle');
          viewer.trackedEntity=myEntity;
         });

这段代码运行良好,但我想给观众选择相机的选项,然后我需要在我完成加载后访问车辆,我尝试了几种方法,但它们都不起作用。我有以下几个例子:

代码语言:javascript
运行
AI代码解释
复制
  var viewer = new Cesium.Viewer('cesiumContainer'); 
  var czmlDataSource = new Cesium.CzmlDataSource();
  viewer.dataSources.add(czmlDataSource);
  czmlDataSource.load('../../SampleData/Vehicle.czml');
  var myEntity= czmlDataSource.entities.getById('Vehicle');
  viewer.trackedEntity=myEntity;

您知道如何从czml文件中定义实体吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 13:55:57

第二个代码块不能工作的原因似乎很简单,因为您没有等待czmlDataSource的异步加载。

尝试修改第二个代码块,去掉最后2行代码,并将它们封装在一个按钮onClick回调中。如果在加载CZML之前单击该按钮,则myEntity将是未定义的,摄像机不会更改。如果在加载CZML之后再次单击相同的按钮,它应该可以正常工作。

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

https://stackoverflow.com/questions/32746825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文