GIS技术支持工程师日常工作随笔-麻点图

本文纯属个人见解,可能是正经的胡扯

麻点图是二维应用中比较成熟的一种专题图表达方式,在三维中应用就较少了,今天有客户问到,是否支持麻点图?
如此简单的问题,不就是添加一堆点,脑海中直接的反应是使用entity添加,就开始着手开始作死测试。
随着entity添加的点越来越多,大致到达5千个点时就开始非常卡顿,1万点时出现了崩溃,直接用entity添加肯定是不行了,纵使entity封装的如此完美易用。
在网上看到一篇博客,介绍entity和primitive的性能对比,发现原来primitive如此强大,便着手实现,实现代码如下:

function pittinglayer(Cesium, viewer) {
    this.layer = ''
    if(Cesium.defined(viewer)) {
    this.layer = viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection());
    }
  }
pittinglayer.prototype.addpoint = function(positon, options) {
    options = options || {}
    if(positon && options) {
        this.layer.add({
        position: positon,
        color: options.color || Cesium.Color.RED,
        pixelSize: options.pixelSize || 5,
        id: options.id || undefined,
        show: options.show || true,
        outlineWidth: options.outlineWidth || 0,
        outlineColor: options.outlineColor || undefined,
        disableDepthTestDistance: options.disableDepthTestDistance || 0,
        distanceDisplayCondition: options.distanceDisplayCondition || undefined,
        scaleByDistance: options.scaleByDistance || undefined,
        translucencyByDistance: options.translucencyByDistance || undefined
        })
    }
}

下面来看加载效果


4W点

经测试最多能加载100w个点以上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。