1. 通过以下方式获取到构件列表(麻烦顺便帮我核实一下以下获取构建列表的代码是否有问题):
// 获取构件
async getFeatures(layer: Cesium.S3MTilesLayer): Promise<any> {
layer.indexedDBSetting.isAttributesSave = true; // 保存属性
async function getDatasetAttributes(dataset) {
const { startID, endID } = dataset;
const attributePromises = [];
for (let id = startID; id <= endID; id++) {
attributePromises.push(layer.getAttributesById(id));
}
const res = await Promise.all(attributePromises);
dataset.attributes = res.filter((item) => !!item);
}
const datasets = await layer.datasetInfo();
const datasetPromises = datasets.map(getDatasetAttributes);
await Promise.all(datasetPromises);
return datasets;
}
2. 点击某个构件,地图上就会定位到该构件。(目前只能通过以下方式设置高亮)
layer.selectedColor = Cesium.Color.CHARTREUSE; // 用户点击构件列表中某个构件设置选中
layer.setSelection(SmID);