我正在尝试使用selectedEntity选择一个实体。我就是这样做的
btn.onclick = function() {
for (var i in viewer.dataSources._dataSources) {
if (viewer.dataSources._dataSources[i].name == btns_class[j].value){
viewer.selectedEntity = viewer.dataSources._dataSources[i]
viewer.zoomTo(viewer.dataSources._dataSources[i])
}
}
}
但我没有得到我想要的,对象仍然没有选择。如何选择对象?
以下是我所拥有的:
这就是我想要的:
发布于 2022-09-08 20:53:32
在铯中,dataSources是实体的集合。您不能将selectedEntity
设置为一个完整的dataSource,而是必须从dataSource中只选择一个实体。因此,这一行是主要的问题:
viewer.selectedEntity = viewer.dataSources._dataSources[i]
此外,_
下划线前缀表示铯的“私有”变量。理想情况下,人们应该避免在生产代码中使用这些代码,因为在不同版本的铯之间,它们可能会在没有警告的情况下改变。
例如,它将找到命名的dataSource并选择集合中的第一个实体:
var dataSource = viewer.dataSources.getByName(btns_class[j].value)[0];
if (Cesium.defined(dataSource)) {
viewer.selectedEntity = dataSource.entities.values[0];
}
另外,如果您想让相机聚焦到实体上,您可能希望将viewer.trackedEntity
设置为同一个实体。这类似于铯中的双击操作,其中selectedEntity
和trackedEntity
都设置为目标对象。
https://stackoverflow.com/questions/73640258
复制相似问题