Hi Omar,
I'm not really sure. I really need to get rid of this animation which cause the entity to be centered from ( trackedEntity )
I have posted my simple code. Just paste it on Sandcastle. You can see I added a move feature for the entity to keep it moving and on entity selection activate the trackedEntity feature.
-------------------------------
var viewer = new Cesium.Viewer('cesiumContainer');
viewer.clock.shouldAnimate = false;
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(-145.0744619, 50.0503706, 5000000.0)
});
viewer.trackedEntityChanged.addEventListener(function(entity) {
if (entity !== undefined) {
console.log('tracked ' +
entity.id);
} else {
console.log('Stopped tracking.');
}
});
var entity;
var position = Cesium.Cartesian3.fromDegrees(-123.0744619, 44.0503706, 5000.0);
var heading = Cesium.Math.toRadians(220);
var pitch = 0;
var roll = 0;
var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
entity = viewer.entities.add({
id: 1,
position : position,
orientation : orientation,
model : {
uri : '../../../../Apps/SampleData/models/CesiumAir/Cesium_Air.glb',
minimumPixelSize : 128,
maximumScale : 20000
}
});
// move entity stright
var lon = -123.0744619;
var lat = 44.0503706;
var sign = 1;
var count = 0;
var i = setInterval(function(){
var diff = Cesium.Math.toRadians(1)*sign;
heading += diff;
pitch -= diff;
lon -= diff;
lat += diff;
position = Cesium.Cartesian3.fromDegrees(lon, lat, 5000.0);
count++;
entity.position = position;
}, 50);
// select entity and put camera lock on it
// toDO: don't animate camera to center , keep camera zoom to the same level
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function(click) {
var pickedObject = viewer.scene.pick(click.position);
if (Cesium.defined(pickedObject)) {
console.log(
pickedObject.id.id);
// viewer.trackedEntity = viewer.entities.getById(
pickedObject.id.id);
entity.viewFrom = new Cesium.Cartesian3(0, 0, viewer.scene.camera.position.z);
viewer.trackedEntity = entity;
}else{
entity.viewFrom = undefined;
viewer.trackedEntity = undefined;
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);