铯标签scaleByDistance

时间:2015-08-05 15:43:11

标签: cesium

我有一系列标签我正在使用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?

提前致谢。

Label hell

1 个答案:

答案 0 :(得分:1)

对标签执行scaleByDistance需要更多额外的工作来获得标签缩放所需的结果。如果我们要将相同的scaleByDistance实现从Billboards调整为标签,则标签中的每个字符都会按距离正确缩放,但标签之间的间距将保持不变。这是由于标签的几何图形被发送到GPU的方式,其中应用了scaleByDistance转换。

标签支持translucencyByDistance,可用于整理。