使用小册子的画布渲染器在大矢量图层渲染中的性能问题

时间:2014-08-18 07:45:12

标签: canvas openlayers leaflet openlayers-3

我尝试通过小册子中的画布渲染器渲染一个包含大约3000个多边形的地图,它在我的电脑上工作正常,但是当我在Android设备上测试它时它很慢(有时甚至崩溃) I-POD。我也尝试用openLayers 2和openLayers 3渲染它,但即使这些工作也很慢。值得注意的是,当我使用上述三个渲染引擎渲染大约800个多边形的地图时,传单在三个中运行得最快,但当数字增加到3000时,它会挂起并崩溃。我使用WKT格式输入我的数据。传单代码如下 -

var wkt = new Wkt.Wkt();
        var geom;
        var feature;
        var typeWiseData;
for (var type in allData){
    typeWiseData = allData[type];
    for (var i=0; i<typeWiseData.length;i++){
        geom = typeWiseData[i]['geometry'];
        if (geom){
            try {
                wkt.read(geom);
                feature = wkt.toObject();
                feature.addTo(map);
            }
            catch(e){
                alert(e.message);
            }

        }
    }
}

有人可以建议我解决这个问题吗?我应该使用任何其他渲染引擎吗?我应该使用任何其他输入数据格式(如geoJSON)吗? 感谢。

1 个答案:

答案 0 :(得分:0)

首先我怀疑原因是输入格式。 浏览器可以在幕后为Canvas元素使用硬件加速,如果它们没有,那么你将会遇到性能下降。

Canvas-&gt; Browser-&gt; OS-&gt;硬件,所以这将取决于很多参数......

我不是Android的专家,但此问题适用于浏览器/设备组合。请参阅以下链接:

Html5很有意思,但不要指望每台设备都具有原生性能,几年内它可能会更好。