Commit 864c1424 authored by xinzhedeai's avatar xinzhedeai

fix: car切换到person ,显示问题

parent 9d95ac5a
......@@ -553,21 +553,60 @@ export default {
console.error("定位到模型上方失败:", error);
}
},
// 修改createPersonModel方法
createPersonModel() {
if (!this.personModelInterval) {
// 先清除可能存在的定时器,避免重复执行
if (this.personModelInterval) {
clearInterval(this.personModelInterval);
this.personModelInterval = null;
}
// 立即生成并显示人员实体,而不是等待定时器执行
console.log("立即创建人员实体");
// 清除现有实体
this.clearEntities();
// 立即调用personCardList生成数据并创建实体
this.personCardList((list) => {
console.log("人员数据", this.personnelList);
// 创建新实体
for (let item of this.personnelList) {
let lng = Number(item.lng);
let lat = Number(item.lat);
let height = Number(item.height);
let position = Cesium.Cartesian3.fromDegrees(lng, lat, height);
console.log(item.perName, position);
// 创建人员标记
let entity = this.viewer.entities.add({
position: position,
label: {
text: item.perName,
font: "16px",
backgroundColor: Cesium.Color.fromCssColorString("#173349"),
showBackground: true,
fillColor: Cesium.Color.YELLOW,
depthTestAgainstTerrain: false,
pixelOffset: new Cesium.Cartesian2(0, -35),
},
billboard: {
image: "/poi-marker-default.png",
scale: 0.5,
heightReference: Cesium.HeightReference.CLAMP_TO_3D_TILE,
},
description: `<div><h4>${item.perName}${item.status}</h4></div>`,
fixedFrame: Cesium.Transforms.eastNorthUpToFixedFrame(position),
});
entity.info = item; // 添加 info 属性
entity.type = "person"; // 添加类型标记
this.bgEntities[item.perName] = entity; // 存储新实体
}
});
// 设置定时刷新,改为10秒(10000ms)
this.personModelInterval = setInterval(() => {
console.log("开始获取实时数据");
// 只清除当前类型的实体
// 清除现有实体
this.clearEntities();
// if (this.bgEntities) {
// for (let key in this.bgEntities) {
// if (isNaN(parseFloat(key))) {
// // 非数字键名的是人员实体
// this.viewer.entities.remove(this.bgEntities[key]);
// delete this.bgEntities[key];
// }
// }
// }
// 从API获取最新的人员定位数据
this.personCardList((list) => {
......@@ -588,7 +627,7 @@ export default {
backgroundColor: Cesium.Color.fromCssColorString("#173349"),
showBackground: true,
fillColor: Cesium.Color.YELLOW,
depthTestAgainstTerrain: false, // 禁用地形深度测试
depthTestAgainstTerrain: false,
pixelOffset: new Cesium.Cartesian2(0, -35),
},
billboard: {
......@@ -604,8 +643,7 @@ export default {
this.bgEntities[item.perName] = entity; // 存储新实体
}
});
}, 1000); // 每10秒刷新一次
}
}, 10000); // 改为10秒刷新一次,与注释一致
},
personCardList(fn) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment