我有一系列标签我正在使用LabelCollection添加到Cesium地球仪中:
data.forEach(function(country) {
countryLabels.add({
position: new Cesium.Cartesian3.fromDegrees(country.lat, country.lng),
text: country.name,
font: "12px arial"
});
});
一切都很好。但无论相机的缩放级别如何,标签都以相同的相对比例渲染。理想情况下,我希望在缩放到足够远的时候隐藏标签,并且只有当它们不会全部重叠时才显示。
我知道广告牌有scaleByDistance属性,但标签没有。有没有办法在没有收听相机上的缩放事件的情况下实现这一点,并手动清除/重新填充此LabelCollection?
提前致谢。
答案 0 :(得分:1)
对标签执行scaleByDistance需要更多额外的工作来获得标签缩放所需的结果。如果我们要将相同的scaleByDistance实现从Billboards调整为标签,则标签中的每个字符都会按距离正确缩放,但标签之间的间距将保持不变。这是由于标签的几何图形被发送到GPU的方式,其中应用了scaleByDistance转换。
标签支持translucencyByDistance,可用于整理。