先晒⼀下效果:
先说下⼤致实现的情形:
现从后台获取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);
}
});
以上三步即可完成全部的功能;设备防尘罩
谢谢观看!如有问题请留⾔或者私信我!