这在所有浏览器中都非常快:
var curLayer = new OpenLayers.Layer.Text("layer", { location: "test.txt"});
map.addLayer(curLayer);然而,以下代码在火狐和Chrome中很快,但在IE8中却非常慢(加载500个特性需要30分钟!):
var curLayer = new OpenLayers.Layer.Vector("layer", {
protocol: new OpenLayers.Protocol.HTTP({
url: "test.txt",
format: new OpenLayers.Format.Text()
})
});
map.addLayer(curLayer);由于许多原因,我更喜欢使用OpenLayers.Layer.Vector,但由于IE性能问题而无法使用。
有谁知道一个好的解决方案吗?最后,我需要在地图上加载许多可自定义的弹出窗口的点击点特征。
发布于 2010-08-25 20:40:35
使用Layer.Text时,将使用html+embedded标记符号渲染标记符号。使用矢量层,符号被绘制为矢量图形(svg和/或vml)。由于IE的矢量渲染性能非常差,openlayers维基建议在IE 6 (http://trac.openlayers.org/wiki/FrequentlyAskedQuestions#WhyisMyMapSluggishwhenIAdd500Markers)中使用最多50个标记。
我建议使用Openlayer的POI集群策略(http://openlayers.org/dev/examples/strategy-cluster.html)来减少更大规模的标记数量。当用户放大时,所有标记都会再次出现。
https://stackoverflow.com/questions/3369907
复制相似问题