当前位置:   article > 正文

解决Cesium中Entity移动漂移的问题_cesium 广告牌 模型上偏移

cesium 广告牌 模型上偏移

案例场景:在Cesium开发三维场景展示中,肯定会碰到加载Entity的需求,如果在你的gis应用中,带了地形的展示。那么在旋转切换画面时,Entity是否跟着一起动了起来,感觉像漂移一样呢?来看下面两张图,两个点在山脚漂到了山顶:

图片

                                                                                          图1 漂移到山脚

图片

                                                                            图2 漂移到山顶

出现上述情况的原因是因为,Entity未设置贴地,同时未开启地形检测。PS:地形检测的意义就在于开启后,会因为高度不一样,有些地物会不可见,即可解决上述的漂移的问题。

解决方案:

第一步:Cesium开启地形检测

viewer.scene.globe.depthTestAgainstTerrain = true; //默认为false

第二步:Entity中point开启贴地及设置高度

  1. point:new Cesium.PointGraphics ( {
  2. show : true,
  3. pixelSize : params.pixelSize || 10,
  4. heightReference:Cesium.HeightReference.CLAMP_TO_GROUND,
  5. disableDepthTestDistance:99000000,
  6. color : params.color || new Cesium.Color ( 255 , 255 , 0 , 1 ),
  7. outlineColor : params.color || new Cesium.Color ( 0 , 0 , 0 , 0 ),
  8. outlineWidth : params.outlineWidth || 0,
  9. scaleByDistance : params.scaleByDistance || new Cesium.NearFarScalar ( 0 , 1 , 5e10 , 1 ),
  10. translucencyByDistance : params.translucencyByDistance || new Cesium.NearFarScalar ( 0 , 1 , 5e10 , 1 ),
  11. distanceDisplayCondition : params.translucencyByDistance || new Cesium.DistanceDisplayCondition(0, 4.8e10),
  12. })

关键代码:

  1. heightReference:Cesium.HeightReference.CLAMP_TO_GROUND,
  2. disableDepthTestDistance:99000000,

第三步:Entity中lable同样开启贴地及设置高度,代码如下:

  1. label : {
  2. text : params.name,
  3. font : '10pt Source Han Sans CN', //字体样式
  4. fillColor:Cesium.Color.BLACK, //字体颜色
  5. backgroundColor:Cesium.Color.AQUA, //背景颜色
  6. showBackground:true, //是否显示背景颜色
  7. style: Cesium.LabelStyle.FILL, //label样式
  8. outlineWidth : 2,
  9. verticalOrigin : Cesium.VerticalOrigin.CENTER,//垂直位置
  10. horizontalOrigin :Cesium.HorizontalOrigin.LEFT,//水平位置
  11. pixelOffset:new Cesium.Cartesian2(10,0), //偏移
  12. disableDepthTestDistance:99000000,
  13. heightReference:Cesium.HeightReference.CLAMP_TO_GROUND
  14. }

注意点:disableDepthTestDistance 这个参数根据当地地形可尽量设置高一点,以免高度不够造成不可见。

最后来看修正后的结果

图片  

                                                                                      图3 正常未遮挡可见

图片

                                                                         图4 点被山体遮挡不可见

图片

                                                                                                 图5 点和标签都被山体遮挡

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/456496
推荐阅读
  

闽ICP备14008679号