铯标签 scaleByDistance

Cesium label scaleByDistance

我有一个标签数组,我正在使用 LabelCollection 添加到 Cesium 球体中:

data.forEach(function(country) {
    countryLabels.add({
        position: new Cesium.Cartesian3.fromDegrees(country.lat, country.lng),
        text: country.name,
        font: "12px arial"
    });
});

一切都很好。但是无论我的相机的缩放级别如何,标签都以相同的相对比例呈现。理想情况下,我希望标签在放大到足够远时隐藏起来,并且仅在它们不会彼此重叠时才显示。

我知道广告牌有 scaleByDistance 属性,但标签没有。有什么方法可以在不监听相机上的缩放事件和手动 clearing/re-populating 这个 LabelCollection 的情况下实现这一点?

提前致谢。

在标签上执行 scaleByDistance 需要更多的额外工作才能获得您期望的标签缩放结果。如果我们将相同的 scaleByDistance 实现从广告牌应用到标签,标签中的每个字符将按距离正确缩放,但标签之间的间距将保持不变。这是由于标签的几何形状被发送到 GPU 的方式,GPU 应用了 scaleByDistance 转换。

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