多个标记崩溃浏览器

时间:2014-10-08 14:28:27

标签: javascript google-maps google-maps-api-3

我在谷歌地图上加载了大约15,000个标记。

我通过每秒使用timeinterval检索了1000个标记。

当它完成并且在地图上加载了15000个标记时,它会崩溃浏览器。

所以,我必须为这个问题做些什么。

请不要投票。

 for (x in dataObject) {
        var infowindow = new google.maps.InfoWindow();
        var markerPosition = new google.maps.LatLng(dataObject[x].Latitude, dataObject[x].Longitude);
        var scaleSize = getSectorSize(dataObject[x].Mapinfo_Sector_Size);
        var sectorColor = getSectorColor(dataObject[x].Radios);
        var pathValue = createPie(dataObject[x].MapInfo_Beamwidth);

        marker = new google.maps.Marker({
            position: markerPosition,
            map: map,
            icon: {
                path: pathValue,
                fillColor: sectorColor,
                fillOpacity: 1,
                strokeColor: '',
                strokeWeight: 0,
                //scale: 0.8,
                scale: dataObject[x].Mapinfo_Sector_Size + 0.04,
                anchor: new google.maps.Point(0, 0),
                rotation: 250 + dataObject[x].Azimuth,
                //rotation: 250,
            },
        });

1 个答案:

答案 0 :(得分:1)

我自己正在开发谷歌地图项目,并且当标记数量增加到500以上时,我们已经看到了性能问题。

谷歌地图文档本身提供了一些有效的workarounds,其中我使用了MarkerClusterer v3,它提供了管理大量标记的好方法。 但是,使用MarkerClusterer不会改善您的性能问题

如果您仍希望在单个视口中向用户显示15000个标记(从用户体验的角度来看,这本身就不合适),那么您可以看一下将标记添加到叠加层,此博客

How To Quickly Add Many Markers Without Killing The Map

提供了在地图上方添加重叠(div)并向div添加标记的完美解决方案。该博客还提供了加载1000个标记的示例。我不确定这是否适用于15000:)

希望这有帮助。