功能实现参考了这位大佬:(9条消息) cesium实现动态圆效果之——旋转圆_右弦GISer的博客-CSDN博客_cesium实体旋转
效果如下:
主要代码:
// 添加模型 参数分别为经度,纬度,高度
addPic(longitude, latitude, altitude) {
var entity = viewer.entities.add({
// Cesium.Cartesian3.fromDegrees经纬度转化为世界坐标
position: Cesium.Cartesian3.fromDegrees(longitude, latitude, altitude),
ellipse: {
semiMinorAxis: 1000.0,
semiMajorAxis: 1000.0,
material: Cesium.Color.YELLOW.withAlpha(0.5)
}
});
viewer.zoomTo(viewer.entities);
var ellipse = entity.ellipse;
ellipse.material = new Cesium.ImageMaterialProperty({
//映射到图像
image: require("../assets/logo.png"), //资源地址
color: Cesium.Color.LIGHTCYAN, //背景颜色
repeat: new Cesium.Cartesian2(1, 1) //想x,y方向重复的次数
});
// 旋转效果
this.rotateMaterial(entity.ellipse, 0, 1);
}
/**
* @description: 旋转材质
* @param {*} instance :实体
* @param {*} _stRotation : 初始材质旋转角度
* @param {*} _amount :旋转角度变化量
* @return {*}
*/
rotateMaterial(instance, _stRotation, _amount) {
instance.stRotation = new Cesium.CallbackProperty(function() {
_stRotation += _amount;
if (_stRotation >= 360 || _stRotation <= -360) {
_stRotation = 0;
}
return Cesium.Math.toRadians(_stRotation);
}, false);
},