关于cesium加载kml线贴地问题(cesium1.61)
最近学习cesium,在加载kml文件时,有的文件,线可以贴地,有的不能贴地,后来通过分析,主要原因是原始的kml文件中设置了贴地,在cesium中才贴地,否则在cesium中设置clampToGround: true也无法实现贴地;
1、原始数据格式
kml中贴地格式如下:tessellate 标签为1时贴地,没有设置贴地一般就没有tessellate这个标签;
2、cesium中加载kml(主要包含为线和点)
var options = {
camera: viewer.scene.camera,
canvas: viewer.scene.canvas,
clampToGround: true, //开启贴地
};
var kmlx=viewer.dataSources.add(Cesium.KmlDataSource.load(url, options));
kmlx.then(function (dataSource) {
viewer.flyTo(kmlx);
var entities = dataSource.entities.values;
for (var i = 0; i < entities.length; i++) {
var entity = entities[i];
//只对_billboard进行设置。
if (entity._billboard) {
entity._billboard.disableDepthTestDistance = Number.POSITIVE_INFINIT