不使用entity的形式,使用primitive,与entity相比,primitive是更低层次的图形概念,通常用于描述一组简单的图形几何体,例如点、线、多边形、体积、文本等基本图形。每个primitive实例可以设置不同的属性,例如颜色、边框、宽度、高度等。主要优点是高效,因为使用了GPU硬件加速,可以轻松绘制大量几何体。
举例十万个点:
//Primitive方式
var pointPrimitives = viewer.scene.primitives.add(
new Cesium.PointPrimitiveCollection()
);
var color = new Cesium.Color.fromCssColorString('#FED976').withAlpha(0.6);
var numPoints = 100000;
for (var j = 0; j < numPoints; ++j) {
var position = randomPoint();
var primitive = pointPrimitives.add({
pixelSize: 3,
color: color,
position: position
});
primitive.tooltip = '第' + j + '个点';
// primitive.popup = '第' + j + '个点';
// primitive.click = function (primitive) {//单击
// //单击事件
// }
}
//取区域内的随机点
function randomPoint() {
var jd = haoutil.math.random(116.11 * 1000, 116.21 * 1000) / 1000;
var wd = haoutil.math.random(30.88 * 1000, 30.98 * 1000) / 1000;
var height = haoutil.math.random(700, 3000)
return Cesium.Cartesian3.fromDegrees(jd, wd, height);
}
实现效果: