cesium NearFarScalar pixelOffsetScaleByDistance

54 篇文章 0 订阅

NearFarScalar和pixelOffsetScaleByDistance是Billboard和Label都有的两个属性,共同点是随着镜头到物体的距离的变化,对其属性的改变

一、NearFarScalar:根据摄像机的距离来设置缩放比例

scaleByDistance = new Cesium.NearFarScalar(100, 0.8, 1000, 0.2)

含义:从100米到1000米,随着距离拉远,缩放比例由0.8插值变成0.2

  • 0-100米,缩放比固定为0.8
  • 100-1000米,缩放比随着距离变大,由0.8插值变成0.2
  • 1000米以上,缩放比固定为0.2    

二、pixelOffsetScaleByDistance:根据摄像机的距离来设置像素偏移

pixelOffsetScaleByDistance = new Cesium.NearFarScalar(100, 5, 1000, 15);

含义:从100米到1000米,随着距离拉远,像素偏移由5插值变成15

  • 0-100米,像素偏移固定为0.8
  • 100-1000米,像素偏移随着距离变大,由5插值变成15
  • 1000米以上,像素偏移固定为0.2    

 待验证:这个偏移量是x方向还是y方向?

pixelOffset = new Cesium.Cartesian2(0.0, 1.0);这个属性上第一个参数是x方向,第二个参数是y方向。那么pixelOffsetScaleByDistance的方向怎么判断呢?感谢大佬指点

三、当同时画Billboard和Label的时候,建议同时设置scaleByDistance,如果有偏移则需要设置pixelOffset+pixelOffsetScaleByDistance,并且pixelOffsetScaleByDistance=scaleByDistance

viewer.entities.add({
                    position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
                    billboard: {
                        image: './image.png',
                        scaleByDistance: new Cesium.NearFarScalar(10, 1.5, 100, 0.5),
                    },
                    label: {
                        text: name,
                        font: '12px',
                        scaleByDistance: new Cesium.NearFarScalar(10, 1.5, 100, 0.5),
                        pixelOffset: new Cesium.Cartesian2(0, -65),
                        pixelOffsetScaleByDistance: new Cesium.NearFarScalar(10, 1.5, 100, 0.5),
                    }
                })

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值