前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CESIUM 点只显示一半

CESIUM 点只显示一半

作者头像
吟风者
发布2021-11-24 15:02:55
1.2K0
发布2021-11-24 15:02:55
举报
文章被收录于专栏:吟风者

CESIUM 点只显示一半

问题:

小圆点只有一半在地上,一半在地下

image-20211101150304020
image-20211101150304020

背景介绍: 通过下述代码往地图上添加小圆点 备注:此时没有加载地形

代码语言:javascript
复制
 //创建点
createPoint(cartesian) {
    let $this = this;
    let point = this.viewer.entities.add({
        position: cartesian,
        point: {
            pixelSize: 10,
            color: $this.Cesium.Color.YELLOW,
        }
    });
    $this._entities_point.push(point);
    return point;
}

方案1:调整深度检测值

使用disableDepthTestDistance: Number.POSITIVE_INFINITY, 圆点完全都在地上了

存在问题: 图中间的小圆点可能会出现在一些建筑的前面,实际在建筑的后面 这是关闭深度检测的必然结果!

方案2:抬升高度 下述语句中输入高度值 let position = Cesium.Cartesian3.fromDegrees(x, y, 10); 相关解释: position中的10,代表圆点的高度,单位是“米”(从圆点的中心抬高10米) pixelSize中的5,代表圆点的像素大小,单位是“像素”(5代表直径) 圆不被遮挡的条件:只有position中的高度,比pixelSize换算成米的数值大 在不同的camera高度下,一个像素代表的实际高度(单位为米),是不一样的 camera越高,一个像素换算成米,就越大 camera越低,一个像素换算成米,就越小

存在问题: position中的height比较小:camera高的时候,小圆点还是有可能有一部分在地球下面 position中的height比较大:camera低的时候,点会显得离地面很远

方案3:关闭深度检测 执行下述代码,关闭深度检测 viewer.scene.globe.depthTestAgainstTerrain = false;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/11/1 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CESIUM 点只显示一半
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档