我尝试通过小册子中的画布渲染器渲染一个包含大约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)吗? 感谢。
答案 0 :(得分:0)
首先我怀疑原因是输入格式。 浏览器可以在幕后为Canvas元素使用硬件加速,如果它们没有,那么你将会遇到性能下降。
Canvas-&gt; Browser-&gt; OS-&gt;硬件,所以这将取决于很多参数......
我不是Android的专家,但此问题适用于浏览器/设备组合。请参阅以下链接:
Html5很有意思,但不要指望每台设备都具有原生性能,几年内它可能会更好。