我在谷歌地图上加载了大约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,
},
});
答案 0 :(得分:1)
我自己正在开发谷歌地图项目,并且当标记数量增加到500以上时,我们已经看到了性能问题。
谷歌地图文档本身提供了一些有效的workarounds,其中我使用了MarkerClusterer v3,它提供了管理大量标记的好方法。 但是,使用MarkerClusterer不会改善您的性能问题。
如果您仍希望在单个视口中向用户显示15000个标记(从用户体验的角度来看,这本身就不合适),那么您可以看一下将标记添加到叠加层,此博客
How To Quickly Add Many Markers Without Killing The Map
提供了在地图上方添加重叠(div)并向div添加标记的完美解决方案。该博客还提供了加载1000个标记的示例。我不确定这是否适用于15000:)
希望这有帮助。