OpenLayers渲染时间

时间:2020-10-27 16:24:41

标签: javascript openlayers-6

我想基于属性在OpenLayers中设置一些点的样式,这里一切都很好,但是渲染时间真的很慢,在我为所有点都使用一种样式之前,它很快。在这两种情况下,我都使用相同的点数(大约9000)。关于什么可以证明的任何想法?

我使用此功能将样式赋予点:

var Styles = function (feature, resolution) {
    if (feature.get('Tipo') === 2) {
        strokecolor = [245,49,5,1];
    }else{
        strokecolor = [130,49,5,1];
    }

    return [new ol.style.Style({
        image: new ol.style.Circle({

            fill: new ol.style.Fill({
                color: strokecolor
            }),
            radius: 3
        })
    })];
};

即使注释条件的一部分并仅为color设置一个可能的值,也确实很慢。

在给我样式之前,

var OneStyle = new ol.style.Circle({
    fill: new ol.style.Fill({
    color:[245,49,5,1]
    }),
    radius:3,
})

这就是我所说的要点并设置样式:

var events_points = new ol.layer.Vector({

    source: new ol.source.Vector({
    url:urlEvents,
    format: new ol.format.GeoJSON()
    }),
    //style:Styles
    style: new ol.style.Style({
    image:OneStyle,

    })
});

1 个答案:

答案 0 :(得分:1)

尝试避免在每次调用函数时创建新样式对象

scale_fill_manual(values = col)