欢迎关注微信公号【三维网格3D】,第一时间获取最新文章
我们在使用cesium时,常常会有需要加载中国各地区名称的需求,然而cesium中能够添加的entity的数量是有上限的,当加载到一定数量时就会出现卡顿甚至是浏览器崩溃的情况,这时候就需要按需加载我们的实体类,接下来就给大家介绍一种按需加载的方式,在鼠标移动结束后根据当前地图层级判断是否显示或者删除实体entity
1、创建一个地球
生成地球以后是这样的,外面的黄色的线就是层级网格线
2、加载数据
接下来我们加载将要作为示例的区域数据,我们打印一下可以发现,当前数据量达到了13w,远远超过了cesium所能容纳的实体数量
此次加载的json数据格式
3、实现按需加载
4、总结
实现方法和实现的思路都在注释中详细的讲解了,这肯定不是唯一的一种实现方式,也不是最好的一种实现方式,但我觉得这是最容易理解和上手的方法,不需要对cesium有非常的高的熟练度也能看懂并且能直接使用。
关键点
加载json数据,创建实体,控制加载实体的瓦片层级
获取当前被渲染的瓦片构成的集合,通过求并集拼成一个大的矩形(也许称为范围可能更合适,但是毕竟使用的是矩形方法)
根据矩形方法判断点是否在矩形中,如果在,则加载当前实体,否则删除当前实体
欢迎关注微信公号【三维网格3D】,第一时间获取最新文章