04、深度检测

深度检测

1、开启深度检测

// 开启深度检测,默认是关闭的
viewer.scene.globe.depthTestAgainstTerrain = true;

2、不开启的后果

  • 地球上的 entity 会 强制绘制、显示 出来而不管是否有遮盖,导致少量位移误差

  • Cesium 拾取鼠标坐标不准

    • scene.pickPosition:有地形数据时,这结果不太准确,需要开启 深度检测
    • globe.pick:准确度较高

这会导致:用鼠标绘制点、线、面 的时候根本拾取不到正确的坐标,导致坐标点严重漂移

3、开启的坏处

开启后,任何实体的渲染都会严格按照深度来绘制

这会导致:

  • entity 【点】实体会有一半隐藏在地下

目前无法解决,只能使用 【Billboard】替代点的图标

在这里插入图片描述

  • entity 【线】会穿过地表
viewer.entities.add({
    polyline: {
        positions: Cesium.Cartesian3.fromDegreesArray([-75, 37, -125, 37]),
        //Cesium.Cartesian3.fromDegreesArrayHeights([-75,39,250000,-125,39,250000,])
        
        //clampToGround: true,
        width: 3,
    },
});

在这里插入图片描述

如果线的位置为:【经度,纬度】时,显示正常。

但如果 关闭深度检测 数据源为【经度、纬度、高度】,会导致线漂浮在空中。

entity.polyline.clampToGround=true
  • polygon

多边形符合地球的曲率,并且可以被放置在表面上或在高度和可任选地被挤压成的体积。

viewer.entities.add({
	polygon: {
        hierarchy: positionData,
        // 不设置高度,则为贴地
        // height:1000, 
        material: new Cesium.ColorMaterialProperty(
        Cesium.Color.WHITE.withAlpha(0.7)
        ),
    },
});

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值