我觉得,是你改clock的current时间改出问题了,你干扰了clock的内部时间机制。clock内部+1,渲染。 你-0.168,再渲染。这不就是后退么
你减去的这 0.167,就是给Cesium 167 毫秒时间,来处理你数据的迟到等问题。但是,相比修改Cesium的clock时间,我觉得修改你报文数据的时间更合适些。
换句话说,打个比方,把你的接下来100条数据看成100个人,排队进行登记。当前你的做法是,来个人你就马上登记。 但是有人会迟到,原本第三个轮到他了,但是他比四五个人来的晚。导致了顺序的混乱。 你可以等第三个人来了,站到他该在的位置,再进行登记处理。
你的困扰是网络及其它原因产生的数据延迟。 可能是业务原因,我这边后端推送数据,并没有产生严重的类似你这种的问题。 我大概有这样一种思路:使用报文时间,假想报文时间比本地系统时间快1秒。这样你会有1秒的缓冲期来处理网络的延迟,能解决你卡顿和后退的现象。坏处是当前的可视化效果,是1秒之前的。 你自己取舍。
没用过CZML. 用js实现的话,路径的话,1秒更新一次数据,只需要把一个新的坐标点 Cartesian2/Cartesian3 add 进原有的 samplePositionProperty 里就完事了。
请教,那如何在创建 PolygonGeometry 时使用 sampledproperty 类型的数据呢?
查了下API,PolygonGeometry 的顶点数据只接收 Array< Cartesian3 > 类型的参数。我尝试传入 sampledPositionProperty 类型的positions,就 renderError 了。