共计 1438 个字符,预计需要花费 4 分钟才能阅读完成。
Cesium 加载广告牌(一)
在 Cesium 开发中须要加载图标等操作,这时候就须要应用 Cesium 中增加广告牌的性能,这里须要用到一个很重要的属性办法 Entity()。在官网文档中,Entity 的解释为:将多种形式的可视化实体聚合到单个高级对象中。它们能够手动创立并增加到 Viewer 实体中,也能够由数据源 (如 CzmlDataSource 和 GeoJsonDataSource) 生成,是实体的汇合。Entity 蕴含很多的属性 id、name、availability、show、description、position、orientation、viewFrom、parent 等其余示意 entity 类型。此处以 billboard 为例,实现增加广告牌的性能。
总的来说,增加广告牌实体分为三步。
- 申明一个 Entity 对象。
let bill = new Cesium.Entity({})
- 在对象中增加实体须要显示的地位。
let bill = new Cesium.Entity({position: new Cesium.Cartesian3.fromDegrees(119.78542186676341, 29.173544144850784),
})
- 在对象中增加须要显示的实体类型。
let bill = new Cesium.Entity({position: new Cesium.Cartesian3.fromDegrees(119.78542186676341, 29.173544144850784),
billboard: {image: "./img/laboratory.png",}
})
这样就曾经增加了一个繁难的广告牌。然而这样的广告牌显示成果并不好,广告牌也只有一半显示在地上。因而须要对广告牌进行其余属性的设置。
首先让广告牌齐全显示在高空。这里能够给显示的地位提供一个高度。
let bill = new Cesium.Entity({position: new Cesium.Cartesian3.fromDegrees(119.78542186676341, 29.173544144850784,100),
billboard: {image: "./img/laboratory.png",}
})
然而,应用着用办法须要依据广告牌的大小实时调整所给的高度,并不利于开发,因而除非有需要须要广告牌浮空,所以并不举荐此办法。因而咱们应用另一种办法让广告牌贴地显示。这样一来,就会让广告牌显示在地形上,不会飘在地面,或者掉在地形的下边
heightReference:广告牌的绝对地位,有三种属性:NONE,CLAMP_TO_GROUND,RELATIVE_TO_GROUND
disableDepthTestDistance:禁用深度检测的相机间隔,是 Number 类型
let bill = new Cesium.Entity({position: new Cesium.Cartesian3.fromDegrees(119.78542186676341, 29.173544144850784),
billboard: {
image: "./img/laboratory.png",
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
disableDepthTestDistance: Number.POSITIVE_INFINITY,
}
})
这样一来图标就能够实现广告牌的贴地解决,设置实现贴地属性。
正文完