CESIUM例子学习(十四)——distance Display Conditions

每一个entity中的渲染要素都是可以单独控制的。如果在不同的视点距离显示不同的要素,可以通过可选属性distanceDisplayCondition来实现。代码如下:

function addBillboardAndRectangle () {
    var entity = viewer.entities.add({
        position: Cesium.Cartesian3.fromDegrees(116.43299999999988, 39.915999999999954, 70),
        billboard: {
            image: "../Cesium1_71/Apps/Sandcastle/images/facility.gif",
            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(2000, 2000000000)
        },
        rectangle: {
            coordinates: Cesium.Rectangle.fromDegrees(
                116.43299999999988, 39.915999999999954,
                117.45299999999988, 41.915999999999954,
            ),
            material: Cesium.Color.RED.withAlpha(0.5),
            outline: true,
            outlineColor: Cesium.Color.RED,
            classificationType: Cesium.ClassificationType.BOTH,
            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0.0, 2000),
        },
    });
    viewer.flyTo(entity)
}
function addPointAndModel () {
    var position = Cesium.Cartesian3.fromDegrees(116.42299999999, 39.905999999999, 85)
    var heading = Cesium.Math.toRadians(135);
    var hpr = new Cesium.HeadingPitchRoll(heading, 0.0, 0.0);
    var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
    viewer.entities.add({
        position: position,
        orientation: orientation,
        point: {
            pixelSize: 10,
            color: Cesium.Color.YELLOW,
            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(250.0),
        },
        model: {
            uri: "../Cesium1_71/Apps/SampleData/models/GroundVehicle/GroundVehicle.glb",
            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0.0, 250.0),
        },
    });
}

上面代码的addBillboardAndRectangle()函数的entity包含了billboard和rectangle两个要素,当视点距离在0到2000米时显示的是rectangle;当视点距离在2000到2000000000米时,显示的是billboard。

addPointAndModel()函数中,entity包含了point和model两个要素,当视点距离在0到250米时显示的是model;当视点距离在250米以上时,显示的是point。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值