2012-06-09 117 views
0

我不知道是否有人也许能帮助我请。缩放设置在谷歌标记

我使用this页面,允许用户查看保存在MySQL数据库中标记和地理编码/反向地理新标记位置。

我可以正确地将地图放置在从数据库加载的标记上,但是我遇到的问题是地图放大到最大设置,而我希望能够手动设置。

我已经尝试添加另一个缩放控制到我的剧本在这里:

// add marker 
var bounds = new google.maps.LatLngBounds(); 
var loc = new google.maps.LatLng(las[i],lgs[i]); 
var marker = new google.maps.Marker({ 
position: loc, 
map: window.map, 
zoom: 8, 
title: nms[i] 
}); 
bounds.extend(loc); 
map.fitBounds(bounds); 

可惜这没有影响。我明白,对某些人来说这可能是一个非常小的修复,但我一直在寻找这一点,而我似乎无法找到解决方案。

我只是想知道是否有人也许可以看看这个,请让我知道我错了?

之后的更新

我一直在使用exisitng代码研究出了解决办法,并通过@Andrew利奇建议。工作解决方案是:

// add marker 
var bounds = new google.maps.LatLngBounds(); 

var loc = new google.maps.LatLng(las[i],lgs[i]); 
var marker = new google.maps.Marker({ 
position: loc, 
map: window.map,    
title: nms[i] 
}); 
bounds.extend(loc); 
map.fitBounds(bounds); 
map.setZoom(16); 

回答

1

删除对bounds的引用。

您的标记添加到地图中,并创建一个LatLngBounds对象包含点。然后您要求地图放大以适应地图视口的边界。将单个位置装配到视口中将始终尽可能放大,即使如此,单个点也不能填充整个视口。

但是,将zoom添加到标记选项也不起作用,因为zoom不是有效选项。 Documentation

相反,已明确将地图的缩放,无论是与map.setZoom(8)或通过在地图的选项zoom选项,当您设置它。

+0

你好,感谢你抽出时间回复我的帖子,这是极大的赞赏。我发现,除去该脚本的'bounds'意味着地图没有对记号中心,所以我一直那些,并通过添加您的建议对'zoom'代码我已经得到了地图工作的罚款。我已经更新了我的原始代码以供参考。亲切的问候 – IRHM

+1

@IRHM,那是因为你应该使用map.setCenter(marker.getPosition())。这就是Andrew Leach所说的不使用边界的意思。 – Adam