我在我的angular2应用程序中使用谷歌地图。我还使用了MarkerCluster,如下所示。
for (let marker of this._markers) {
let lat = +marker.latitude;
let long = +marker.longitude;
let markerobj = new google.maps.Marker({
position: new google.maps.LatLng(lat, long),
title: marker.name,
icon: {
path: google.maps.SymbolPath.CIRCLE,
scale: 6,
fillOpacity: 0.8,
fillColor: '#5A7793',
strokeColor: '#FFFFFF',
strokeWeight: 2,
},
map: this.map,
visible: true,
});
this.markerLayer.push(markerobj);
latlngbounds.extend(markerOnMap.getPosition());
markerList.push(markerOnMap);
}
let markerCluster = new MarkerClusterer(this.map, markerList, { imagePath: '../assets/images' });我想在谷歌地图上显示大约100000个标记。当我试图绘制100000个标记时,我面临着许多性能问题。
根据客户的要求,我不能使用其他地图库。我需要坚持使用谷歌地图。
你有什么建议可以帮助我提高性能吗?
发布于 2017-07-26 22:32:02
你不会一次绘制100,000个标记。您需要做的是减少一次显示的数据量。仅在放大时显示单个标记,这样视图中就不会有太多标记。
因此,我建议您根据google地图的边界从服务器加载标记。这就是左上角和右下角的坐标。
假设你有10万个标记分布在世界各地。在世界视图中,最好不要显示任何内容,并要求用户放大。一旦你处于较低的缩放级别,使用地图的边界从服务器获取位于这些边界内的标记。这将大大减少您必须显示的标记的数量。我不知道你的数据的覆盖范围,但你可以弄清楚哪种缩放级别最适合你。
https://stackoverflow.com/questions/45322436
复制相似问题