信息框为空
InfoBox is empty
动态 select 一个元素后,我的 Cesium 信息框是空的。
这就是我 select 添加元素的方式。
public selectById(id: string): void {
console.log('selecting ' + id);
if (id != null) {
// this.viewer is Cesium.Viewer => https://cesiumjs.org/Cesium/Build/Documentation/Viewer.html?classFilter=viewer
this.viewer.selectedEntity = this.viewer.entities.getById(id);
// viewer.flyTo messes up the camera pitch
this.viewer.camera.flyTo({destination: this.viewer.selectedEntity.position.getValue(Cesium.JulianDate.now())});
}
}
实体已 selected,相机飞向它就好了,Cesium 信息框在标题中显示实体名称也很好,但不显示描述。如果我通过单击 select 实体,该框会很好地显示描述。
我找不到任何强制 InfoBox 重绘的内容,也找不到我需要为 InfoBox 更新设置的任何其他内容。那我错过了什么?
- 我尝试设置
this.viewer.infoBox.viewModel.description
但这也没有帮助。
显然这是由于在地图容器设置为 display: none
时选择实体造成的。我能够通过延迟执行直到焦点返回到地图来解决这个问题。
动态 select 一个元素后,我的 Cesium 信息框是空的。
这就是我 select 添加元素的方式。
public selectById(id: string): void {
console.log('selecting ' + id);
if (id != null) {
// this.viewer is Cesium.Viewer => https://cesiumjs.org/Cesium/Build/Documentation/Viewer.html?classFilter=viewer
this.viewer.selectedEntity = this.viewer.entities.getById(id);
// viewer.flyTo messes up the camera pitch
this.viewer.camera.flyTo({destination: this.viewer.selectedEntity.position.getValue(Cesium.JulianDate.now())});
}
}
实体已 selected,相机飞向它就好了,Cesium 信息框在标题中显示实体名称也很好,但不显示描述。如果我通过单击 select 实体,该框会很好地显示描述。
我找不到任何强制 InfoBox 重绘的内容,也找不到我需要为 InfoBox 更新设置的任何其他内容。那我错过了什么?
- 我尝试设置
this.viewer.infoBox.viewModel.description
但这也没有帮助。
显然这是由于在地图容器设置为 display: none
时选择实体造成的。我能够通过延迟执行直到焦点返回到地图来解决这个问题。