在cesium的开发中,当我们加入一些矢量数据到地图上时,不设置贴地的情况下,矢量展示在地图上可能会飘在空中,或者看不到旋转角度会发现掉在地形下边。还有随着视野移动会跟着镜头移动等问题,在此记录下此问题的解决方式。
cesium提供了常用实体对象的贴地处理,设置完贴地属性,就会让对象显示在地形上,而不会出现以上的问题。
常见实体的贴地设置
1、面状、点状、广告牌
这些实体类型的贴地设置,是通过heightReference属性进行设置,设置成CLAMP_TO_GROUND值,对于面图层,要同时不设置面的 height (高度) :0属性,(需要注意的是,面状数据设置贴地后,边线的数据是不能显示了,需要单独添加边线数据)
2、geojson等数据源
在加载geojson的时候,可以设置clampToGround的属性值为true
let promise = Cesium.GeoJsonDataSource. load () (geojson, {
clampToGround: true
});
3、线状数据需要设置clampToGround的属性为true