cesium实现键盘控制人物模型在地图上移动,不多说直接贴代码,记录一下。
function AddPeople() {
// if (typeof(viewer.entities.getById('people')) != "undefined") {
// alert("请勿重复加载。");
// viewer.entities.removeById('people');
// //return;
// }
// //动态生成的人物
// viewer.entities.add({
// id: 'people',
// position: Cesium.Cartesian3.fromDegrees(118.9602, 32.4916, 30.0),
// model: {
// uri: '../jsn-admin/img/Cesium_Man.glb',
// scale: 10,
// }
// });
// viewer.trackedEntity = viewer.entities.getById('people');
}
var scene = viewer.scene;
var camera = viewer.camera;
var clock = viewer.clock; //模型动画开启参数
//var controller = scene.screenSpaceCameraController; 1
var hpRoll = new Cesium.HeadingPitchRoll(); //旋转,表示为航向,俯仰和横滚。航向是绕负z轴的旋转。螺距是绕负y轴的旋转。滚动是绕正x轴的旋转。
var hpRange = new Cesium.HeadingPitchRange(); //第一视角需要用到的参数
var center = new Cesium.Cartesian3(); //第一视角需要用到的参数
var r = 0; //第一视角需要用到的参数
//var deltaRadians = Cesium.Math.toRadians(1.0); 1
//var hprRollZero0 = new Cesium.HeadingPitchRoll(); 1
var position0 = Cesium.Cartesian3.fromDegrees(118.9602, 32.4916, 80); //3D笛卡尔点。
var converter0 = Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west');
//var comments0 = localFrames[0].comments; 1
//var modelMatrix0=Cesium.Transforms.eastNorthUpToFixedFrame(position0);
clock.shouldAnimate = true; //模型动画开启
//显示的人物模型
var planePrimitive0 = scene.primitives.add(Cesium.Model.fromGltf({
url: '../jsn-admin/img/Cesium_Man.glb', //人物模型
modelMatrix: Cesium.Transforms.headingPitchRollToFixedFrame(position0, hpRoll