Cesium在加载czml数据时,czml数据会包含图元,有时我们需要获取到实体的经纬度进行下一步操作。这时我们需要使用Cesium的时间属性CesiumTimeInterval去侦听每一秒的变化,从而获取到实体的经纬度。
addCzmlDataSource2(viewer){
let czmlDataSourcePromise = Cesium.CzmlDataSource.load('../../static/data/Vehicle.czml');
czmlDataSourcePromise.then(function (czml) {
// console.log(czml)
console.log(czml.entities)
// console.log(czml.clustering)
viewer.dataSources.add(czml);
var entity = czml.entities.getById("Vehicle");
console.log(entity)
let cartographic = null
viewer.clock.onTick.addEventListener(function (clock) {
var position = entity.position.getValue(clock.currentTime);
cartographic = Cesium.Cartographic.fromCartesian(position);
console.log('经度'+cartographic.longitude+'纬度'+cartographic.latitude+'高度'+cartographic.height)
})
}) .otherwise(function (error) {
console.log(error);
});
viewer.scene.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(经度, 纬度, 高度),
orientation: {
heading: 6,
},
});
},