Layer.Text vs Layer.Vector.表现问题

Zen*_*nya 2 openlayers

这在所有浏览器中都非常快:

var curLayer = new OpenLayers.Layer.Text("layer", { location: "test.txt"});
map.addLayer(curLayer);
Run Code Online (Sandbox Code Playgroud)

但是,以下代码在Firefox和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);
Run Code Online (Sandbox Code Playgroud)

由于我更喜欢​​使用的原因OpenLayers.Layer.Vector,但不能由于IE性能问题.

有人知道一个好的解决方案吗?最后,我需要在地图上加载许多可自定义弹出窗口的可点击点功能.

fbu*_*ger 5

使用Layer.Text时,标记符号将使用html +嵌入的标记符号进行渲染.使用矢量图层,符号被绘制为矢量图形(svg和/或vml).由于IE的矢量渲染性能非常差,因此openlayers wiki建议在IE 6中使用最多50个标记(http://trac.openlayers.org/wiki/FrequentlyAskedQuestions#WhyisMyMapSluggishwhenIAdd500Markers).

我建议使用Openlayer的POI聚类策略(http://openlayers.org/dev/examples/strategy-cluster.html)来减少更大规模的标记数量.当用户放大时,所有标记都会再次出现.