问题:
【Sightline 通视分析】同样坐标的通视分析再次更新结果不一样。
链接:
http://mars3d.cn/editor-vue.html?key=ex_9_0_5&id=thing/analysis/sightline
现象:
加上这个代码 过一定时间后重新分析,两次分析结果不一致
setTimeout(() => {
sightline.clear()
sightline.add(center, targetPoint, { offsetHeight: 1.5 })
},1000);
不仅是建筑物,地形等其他区域也是一样会有这个问题。
问题说明:
Mars3d的通视分析计算使用cesium本身的接口方法,目前ceisum内部计算返回结果就不稳定。
// @param { Cesium.Cartesian3} origin 起点(视点位置)
// @param { Cesium.Cartesian3} target 终点(目标点位置)
const currDir = Cesium.Cartesian3.normalize(Cesium.Cartesian3.subtract(target, origin, new Cesium.Cartesian3()), new Cesium.Cartesian3())
const currRay = new Cesium.Ray(origin, currDir)
const objectsToExclude = []
const pickRes = map.scene.drillPickFromRay(currRay, 2, objectsToExclude)
const position = pickRes[0].position //第一个交点