问题描述
|
我正在尝试让标记管理器在Google Maps V3上工作。我已尝试复制此处教程页面上显示的内容,但似乎无法使其正常工作。这是我到目前为止使用的代码:
function gmapInit()
{
drawMap();
}
function drawMap()
{
var center = new google.maps.LatLng(...,...);
var mapOptions = {
center: center,scrollwheel: false,mapTypeId: google.maps.MapTypeId.ROADMAP,disableDefaultUI: true,zoomControl: true,streetViewControl: true
};
var map = new google.maps.Map(document.getElementById(\"map_canvas\"),mapOptions);
var mgr = new MarkerManager(map);.
google.maps.event.addListener(mgr,\'loaded\',function()
{
createMarkers(map,mgr);
});
map.setCenter(center);
}
function createMarkers(map,mgr)
{
var bounds = new google.maps.LatLngBounds();
<c:forEach var=\"place\" items=\"${places}\">
var point = new google.maps.LatLng(...,...);
bounds.extend(point);
var image = new google.maps.MarkerImage(\"...\",new google.maps.Size(25,25),new google.maps.Point(0,0),25));
var marker = new google.maps.Marker({
position: point,map: map,icon: image
});
google.maps.event.addListener(marker,\'click\',function()
{
...
});
mgr.addMarker(marker,20);
</c:forEach>
map.fitBounds(bounds);
mgr.refresh();
var listener = google.maps.event.addListener(map,\"idle\",function()
{
if (map.getZoom() > 16)
{
map.setZoom(16);
}
});
}
但是,无论我设置了什么值和放大的缩放级别,图标仍然保持显示。此外,我仍然收到以下错误:
grid is undefined
任何对此的见解表示赞赏:)
我正在使用的MarkerManager文件可在此处找到
解决方法
这似乎已经解决了问题:
var listener = google.maps.event.addListener(map,\"idle\",function()
{
if (map.getZoom() > 16)
{
map.setZoom(16);
}
mgr.refresh();
});
问题是地图没有指定缩放级别。
, var marker = new google.maps.Marker({
position: point,map: map,icon: image
});
google.maps.event.addListener(marker,\'click\',function()
{
...
});
mgr.addMarker(marker,20);
you should not assign map to marker while you are adding it to MarkerManager.
var marker = new google.maps.Marker({
position: point,**// map: map,**
icon: image
});
google.maps.event.addListener(marker,20);