Javascript Marker中新的Google地图符号对象使IE速度非常慢

Javascript Marker中新的Google地图符号对象使IE速度非常慢,javascript,internet-explorer,google-maps,Javascript,Internet Explorer,Google Maps,我正在测试GoogleMapsV3API的新符号对象。我用相同的符号路径和颜色设置了400个标记的每个“图标”属性 当使用Firefox或Chrome查看示例页面时,所有内容加载速度都很快,效果也很好 不幸的是。。。Internet Explorer的性能非常差。加载时和尝试在地图上拖动或缩放时都很糟糕 下面是一个简单的javascript示例,您可以使用它在IE上进行测试 var map; function initialize() { var mapDiv = documen

我正在测试GoogleMapsV3API的新符号对象。我用相同的符号路径和颜色设置了400个标记的每个“图标”属性

当使用Firefox或Chrome查看示例页面时,所有内容加载速度都很快,效果也很好

不幸的是。。。Internet Explorer的性能非常差。加载时和尝试在地图上拖动或缩放时都很糟糕

下面是一个简单的javascript示例,您可以使用它在IE上进行测试

  var map;
  function initialize() {
    var mapDiv = document.getElementById('map-canvas');
    map = new google.maps.Map(mapDiv, {
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    google.maps.event.addListenerOnce(map, 'tilesloaded', addMarkers);

  }

  function addMarkers() {
    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var lngSpan = northEast.lng() - southWest.lng();
    var latSpan = northEast.lat() - southWest.lat();
    for (var i = 0; i < 400; i++) {
      var latLng = new google.maps.LatLng(southWest.lat() + latSpan * Math.random(),
                                          southWest.lng() + lngSpan * Math.random());
      var marker = new google.maps.Marker({
        position: latLng,
        icon:{  
            path: google.maps.SymbolPath.CIRCLE,
            fillOpacity: 1,
            strokeWeight: 0,
            scale: 4
         },
       map: map
      });
    }
  }
var映射;
函数初始化(){
var mapDiv=document.getElementById('map-canvas');
map=新的google.maps.map(mapDiv{
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
google.maps.event.addListenerOnce(map'tilesloadded',addMarkers);
}
函数addMarkers(){
var bounds=map.getBounds();
var soutwest=bounds.getsoutwest();
var northEast=bounds.getNorthEast();
var lngSpan=northEast.lng()-soutwest.lng();
var latSpan=northEast.lat()-soutwest.lat();
对于(变量i=0;i<400;i++){
var latLng=new google.maps.latLng(soutwest.lat()+latSpan*Math.random(),
soutwest.lng()+lngSpan*Math.random());
var marker=new google.maps.marker({
位置:latLng,
图标:{
路径:google.maps.SymbolPath.CIRCLE,
不透明度:1,
冲程重量:0,
比例:4
},
地图:地图
});
}
}
当你将它与一些额外的属性和事件一起使用时,它会变得最糟糕!但是如果你只是删除标记的“icon”属性,基本的谷歌标记就会出现,一切都会像Chrome和Firefox一样快速

有人能回答为什么IE在使用Symbol时速度会这么慢,我该如何加快这个过程吗


谢谢

谷歌地图上的符号图标是新地图的一部分。这些不是位图,而是SVG格式的矢量路径。这些基本上都是包含许多点的路径,这些点会一直绘制到形状完成为止

现在有很多图标,这意味着需要绘制很多SVG路径。当您在不同的浏览器中看到不同的渲染速度时,您基本上是在比较浏览器的SVG渲染引擎——从您的应用程序来看,IE9似乎比其他浏览器慢


我不认为有什么方法可以加快这一进程。您可以减少所显示标记的数量(例如使用群集),直到达到可接受的渲染速度。或者你可以简单地使用位图图标。

你说的是哪个Internet Explorer版本?@j0nes-我正在使用IE 9(9.0.8112.16421-升级版本9.0.7),谢谢!感谢您的时间,这是有意义的,但我昨天用不同的IE版本(使用IE开发者工具)进行了进一步测试,似乎问题只出在IE9上。IE8和IE7都可以。。。IE9 javascript引擎似乎有问题。IE9具有本机SVG支持,所有旧版本都使用助手库或使用其他方式绘制矢量数据,例如在VML中,如中。这就是区别所在。谢谢你的链接!嗯,我希望他们能迅速改进他们的图书馆。。。看到“现代”浏览器限制使用谷歌地图符号等功能,令人十分失望……对于使用内置Google.Maps.SymbolPath.CIRCLE path的500个标记,IE10的性能似乎很好。IE9开始缓慢爬行,渲染需要几分钟。IE8也太慢了。IE7挂起,永远不会回来。