前言
Cesium当中可能会使用到多个实体对象,比如标签、几何体等等,但是有一些需要多个的时候不想一个一个添加到viewer就需要使用循环来生成。
代码
代码如下(示例):
let labels=viewer.entities.add(new Cesium.Entity());
putLables( antennaList, labels );
labels.show = true;
function putLables(_datas, _parent) {
for (let i = 0; i < _datas.length; i++) {
let data = _datas[i];
let entity = {
//参数顺序:经度、纬度
name:data.name,
position: Cesium.Cartesian3.fromDegrees(centerlon + data.difX* 0.00001141, centerlat + data.difY* 0.00000899, centerheight + data.difZ),//标签的位置
parent: _parent,
label: {
//文字标签
text: data.name,
font: '500 30px Helvetica',// 15pt monospace
scale: 0.5,
style: Cesium.LabelStyle.FILL,
fillColor: Cesium.Color.WHITE,
pixelOffset: new Cesium.Cartesian2(-50, 0), //偏移量
showBackground: true,
backgroundColor: new Cesium.Color(0.5, 0.6, 1, 1.0)
},
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 1000),
description:`<table width: 280px;>
<tr><td>下倾角:</td><td>${data.downtilt}</td></tr>
<tr><td>方位角:</td><td>${data.azimuth}</td></tr>
<tr><td>挂高:</td><td>${data.height}</td></tr>
<tr><td>天面是否遮挡:</td><td>${data.occlusion}</td></tr></div>`
};
viewer.entities.add(entity);
}
}