CESIUM-加点操作,entity和primitive

Cesium中,添加点一般两种方式:

1.entities

2.primitive

1.主要区别:

entities方式,用法简单,属性方便,直接设置即可。

primitive,底层调用,性能更好。

2.代码定义:

实际开发一般需要自己定义图层来区分不同业务数据

entities:

var cameraEntityCollection = new Cesium.CustomDataSource("layer_camera");
viewer.dataSources.add(cameraEntityCollection );
cameraEntityCollection .entities.add(...)

primitive:

var cameraCollection = viewer.scene.primitives.add(
			new Cesium.BillboardCollection({
				scene: viewer.scene,
			})
);
cameraCollection.add(...)

CustomDataSource和PrivitiveCollection可以理解为图层的概念,不同的图层存放不同业务数据。

性能测试:地图添加10w点,entities的fps在20左右,而primitives的fps保持在60,且拖动地图primitives更加平滑,entities则有一些卡顿。(左entities,右primitives)

总结:业务数据少的话用entities,数据多的话用primitives,当然也可以自己封装primitives。

另外在2d地图如openlayers中,会利用utfgrid的方式来处理海量数据,在cesium中如何使用,需要进一步研究一下。

经验分享 程序员 微信小程序 职场和发展