铯标签 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,可用于整理。
我有一个标签数组,我正在使用 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,可用于整理。