最近项目中遇到了一个问题,切换到2D模式下的时候,球上的点、线、图片、模型等,拖动时偶尔会出现黑影,放个对比图感受一下,下图分别是正常显示和拖动黑影两种情况。
\"正常显示\"
\"拖动黑影\"
操作了几次发现了问题所在,左右拖动会发现有多个世界,每次出现世界边界的时候就会出现拖影的问题。之后去查了api发现了mapMode2D属性,该属性有两个取值

  1. Cesium.MapMode2D.INFINITE_SCROLL
    The 2D map can be scrolled infinitely in the horizontal direction.(二维地图可以在水平方向上无限滚动)
  2. Cesium.MapMode2D.ROTATE
    The 2D map can be rotated about the z axis.(二维地图可以围绕z轴旋转)

其中,Cesium.MapMode2D.INFINITE_SCROLL为默认值,即我们看到的多个世界,可以无限拖动。当mapMode2D的属性值改为Cesium.MapMode2D.ROTATE后,不再出现多个世界,也不会有拖影了。

总结
为防止出现拖影,可以在初始化时设置mapMode2D属性值为Cesium.MapMode2D.ROTATE,虽然我也不明白为什么会这样,但是设置之后问题真的不存在了。

var viewer = new Cesium.Viewer( \'cesiumContainer\', {
	sceneModePicker : true,
	mapMode2D: Cesium.MapMode2D.ROTATE
}
收藏 打印