最近遇到个需求,在cesium中要求鼠标移动到point上,显示放大,当鼠标移出,point恢复原来大小。再次,整理了一下:
思路首先给cesium添加鼠标移动事件,然后获取到cesium中entity实体对象,找到point属性,然后进行设置其_pixelSize属性值大小即可。代码如下:
//鼠标移动事件point放大缩小
var canvas = this.cesiumViewer.scene.canvas;
var handler = new Cesium.ScreenSpaceEventHandler(canvas);
var viewer = this.cesiumViewer;
handler.setInputAction((movement)=> {
let pickedFeatureStart = viewer.scene.pick(movement.startPosition);
let pickedFeatureEnd = viewer.scene.pick(movement.endPosition);
if (!Cesium.defined(pickedFeatureStart)) {
//开始位置无实体
// console.log('鼠标滑动开始位置实体对象',pickedFeatureStart)
return;
}
let entitieStart = pickedFeatureStart;
if (!Cesium.defined(pickedFeatureEnd)) {
//结束位置无实体
entitieStart.id._point._pixelSize._value = 30
//console.log('鼠标滑动结束位置实体对象',pickedFeatureEnd)
//console.log('鼠标滑动开始位置实体对象',pickedFeatureStart)
return;
}
if(entitieStart.id._id){
entitieStart.id._point._pixelSize._value = 60
// console.log(entitieStart.id._point._pixelSize._value,'point大小');
// console.log(entitieStart.id._point._pixelSize._value,'改变');
// console.log(entitieStart.id._point,'改变');
}
return
},
Cesium.ScreenSpaceEventType.MOUSE_MOVE);