我正在使用谷歌地图来显示用户在喝什么以及在哪里喝,这样他们就可以去看看谁在他们附近喝了什么。
您可以在此处查看当前版本的地图:www.vinpin.com/map
您会看到页面本身并没有滞后,对服务器的 ajax 调用非常快,但瓶颈实际上是谷歌地图,当我循环并在地图上添加标记时,它只会冻结几秒钟。
有没有办法在不冻结地图的情况下添加标记?
基本上我所做的是在标记的 json 列表上循环并像这样添加它们:
// Map Creation Part:
var mapOptions = {
center: new google.maps.LatLng(47.279229, -94.21875), // North America
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 4,
minZoom: 3
};
map = new google.maps.Map(document.getElementById("google_map_canvas"), mapOptions);
// Part that's in the loop:
var shadow = {
url: (isPin) ? pin_marker_icon_shadow : user_marker_icon_shadow,
size: new google.maps.Size(29.0, 25.0),
anchor: new google.maps.Point(8.0, 12.0)
};
var image = {
url: (isPin) ? pin_marker_icon : user_marker_icon,
size: new google.maps.Size(16.0, 25.0),
anchor: new google.maps.Point(8.0, 12.0)
};
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
icon: image,
shadow: shadow
});
markers.push(marker);
这有什么问题吗?处理大量标记的更好方法?
谢谢!