Cesium追踪模型或entity动态修改观看视角

阅读: 评论:0

Cesium追踪模型或entity动态修改观看视⾓
先晒⼀下效果:
先说下⼤致实现的情形:
现从后台获取json数据,拿到gps坐标数组,⾥⾯包含时间和经纬度⾼度,展⽰模型的运⾏轨迹,并且在展⽰的同时可以动态修改观看的视⾓;
围墙铁丝网以下是cesium中trackEntity时的视⾓设定:
调⽤viewFrom⽅法;
在entity这个类下,⾃⼰可以去看⼀下,这⾥的设定只是在追踪entity的时候初始视⾓,下⾯的是动态修改视⾓;
现说下⼤致的实现思路:
1、获取数据时 设置 var property = new Cesium.SampledPositionProperty();
2、将获取到的property添加到entity中,
availability: new Cesium.TimeIntervalCollection([new
伞齿轮传动Cesium.TimeInterval({
start: start,
stop: stop
})]),
position: property,
orientation: new Cesium.VelocityOrientationProperty(property),
model: {
uri: '../data/gltf/plane.glb',
minimumPixelSize: 64
},
path: {
resolution: 1,
material: new Cesium.PolylineGlowMaterialProperty({
glowPower: 0.1,
柴油机启动器color: Cesium.Color.YELLOW.withAlpha(0)水性涂料分散剂
应用系统运维}),
width: 3
}
});
3、以上两步即可使模型运动,接下来动态设置视⾓,我是使⽤ack(viewModel);绑定了⼀个html的控制⾯板,当然不⽤这个⾃⼰写也⾏,绑定好了之后添加场景的渲染事件viewer.scene.preUpdate.addEventListener,在此事件的回调函数⾥动态修改camera的hpr;
preUpdateHandler = viewer.scene.preUpdate.addEventListener(function () {                if (entity) {
hpRange.heading = viewHeading || Radians(90);                    hpRange.pitch = viewPitch || Radians(0);
hpRange.range = viewRange || 1000;
var center = Value(viewer.clock.currentTime);                    if (center) viewer.camera.lookAt(center, hpRange);
}
});
以上三步即可完成全部的功能;设备防尘罩
谢谢观看!如有问题请留⾔或者私信我!

本文发布于:2023-05-16 11:51:51,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/101560.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:动态   修改   追踪
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图