【发布时间】:2012-04-14 05:36:31
【问题描述】:
我目前正在组合一个演示应用程序,该应用程序需要在地图上显示 28,000 个标记,而不使用任何类型的聚类。问题是,在地图上添加这么多标记需要很长时间,以至于浏览器崩溃!这是当前的过程
-从数据库中检索地图点,包括 LAT 和 LONG(不必进行地理编码) - for 循环遍历每个返回值并执行以下操作:
var marker = new google.maps.Marker({
position: point,
animation: google.maps.Animation.DROP,
map: map,
title: value.Title,
icon: icons['store']
});
google.maps.event.addListener(marker, 'click', function () {
var hidingMarker = currentPlace;
var slideIn = function (marker) {
$('#Name', info).text(place.Title);
$('#Phone', info).text(place.Description);
$('#Address', info).text(place.Proper_Address);
$('#LastSale', info).text("Last Sale:" + place.Last_Sale);
info.animate({ right: '0%' });
}
- 标记插入,用户可以点击其中任何一个来查看一些信息
有没有更有效的方法可以显示 28,000 个,而无需对它们进行聚类?我发现了一些人们之前编写的脚本来处理它,但它们都是针对 api V2 的。非常感谢任何链接或代码! 谢谢!
【问题讨论】:
-
用例是什么? 28000 个标记对用户有何用处?特别是如果他们应该选择一个来点击它。最好将标记限制在视口中并根据需要添加/删除。
-
我会说 28k 的任何东西(无论是添加标记还是制作“嘘”)都会使任何浏览器崩溃。所以我的建议:不要这样做。 FusionTables 可能是一种选择
-
用例是用不同的统计数据绘制世界各地的所有商店颜色坐标。我创建了一个小点来替换默认的较大标记。这只需要一次,它永远不会对我们的用户公开
-
“它永远不会公开”打开了有关服务条款的问题。
-
当别人指出你可能没有想到的事情时,当一个混蛋并不是从别人那里获得帮助的最佳方式。
标签: google-maps google-maps-api-3 google-maps-markers google-fusion-tables