前言
SuperMap iClient3D for WebGL实现点击billboard修改标签内容
一、创建billboard
var monitorEntity = viewer.entities.add({
name: "video",
position: Cesium.Cartesian3.fromDegrees(109.44, 32.11,30.0),
point: {
pixelSize: 20,
HeightReference: 1000
},
label: {
text: "文字标签",
font: '500 30px Helvetica',
scale: 0.5,
style: Cesium.LabelStyle.FILL,
fillColor: Cesium.Color.WHITE,
pixelOffset: new Cesium.Cartesian2(-8, -35),
showBackground: true,
backgroundColor: new Cesium.Color(0.5, 0.6, 1, 1.0)
},
billboard: {
image: '../images/marker01.png',
width: 50,
height: 50
},
});
二、注册ScreenSpaceEventHandler事件
1.ScreenSpaceEventHandler
var handlerVideo = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
2.左键点击事件
handlerVideo.setInputAction(function (click) {
var pick = viewer.scene.pick(click.position);
if (pick && pick.id._name == "video") {
monitorEntity._billboard._image._value = '../images/marker02.png';
monitorEntity._label._text._value = "label";
} else {
monitorEntity._billboard._image._value = '../images/marker02.png';
monitorEntity._label._text._value = "文字标签";
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
三、最终效果
