Cesium加载城市白膜数据
数据获取
首先,城市建筑数据可以去网上扒一些,拿到的都是shp格式的文件。
数据转化
shp文件可以很方便的转为Geojson文件,然后再通过Cesium导入也可以实现效果。效果如下所示:
图中就是用Geojson数据添加到地图中,大约有117000条数据,加载的效果还可以。但是数据量大加载时间会比较长而且会卡顿。
shp数据文件可以通过CesiumLab来转换为3dtiles,然后再通过Cesium加载到地球中。文章来源:https://www.toymoban.com/news/detail-502368.html
加载3DTiles
下面封装了一个添加3DTiles的方法add3DTiles()
,可以直接拿去使用。文章来源地址https://www.toymoban.com/news/detail-502368.html
// 添加城市白膜3DTiles
add3DTiles(params) {
const {
url,
complete, // 加载完成的回调函数
flyTo = false,
show = true
} = params
console.log(url + '——数据开始加载');
console.time('3dtiles');
const tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url,
show,
shadows: Cesium.ShadowMode.DISABLED,
luminanceAtZenith: 1,
}))
// 监听数据加载完成
tileset.allTilesLoaded.addEventListener(() => {
console.log('数据加载完成');
console.timeEnd('3dtiles');
if(typeof complete == 'function') {
complete()
} else {
console.error('complete参数值格式有误,应为function类型')
}
// 加载完成后飞往该处
if(flyTo) {
viewer.flyTo(tileset);
}
});
return tileset
}
到了这里,关于Cesium加载城市白膜数据3DTiles的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!