添加多个点后,重点关注Google地图

时间:2013-02-04 21:08:26

标签: google-maps google-maps-api-3

  

可能重复:
  Center map and zoom to fit the markers on the screen

我只是在编写一个使用Google地图的应用。该应用程序为地图添加了多个点。我希望能够在添加它们之后将地图集中在这些多个点上,但不知道如何。

到目前为止,我倾向于做以下事情:

  1. 添加积分时,跟踪最小经度,最大经度,最小纬度,最大纬度
  2. 计算平均经度,平均纬度
  3. 所以......现在我知道如何找到我的地图中心。

    有谁知道我如何计算缩放?

2 个答案:

答案 0 :(得分:3)

将位置添加到空的google.maps.LatLngBounds对象。

在结果边界上调用google.maps.Map.fitBounds

psuedo代码(未经过测试,假设您的标记位于名为gmarkers的范围内的数组中,假设您的google.maps.Map对象称为“map”):

var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < gmarkers.length; i++) 
{
   bounds.extend(gmarkers[i].getPosition());
}
map.fitBounds(bounds);

答案 1 :(得分:0)

如果您事先知道点(标记),则将设置所有中心的点设置为setCenter标记点并将其作为标记设置并设置Zoomlevel

如果你事先不知道点并且知道位置(例如特定的州或县或地区)而不是得到它的中心点,那么得到它的纬度/ lng并将该点设置为setCenter标记点,相应地设置zoomlevel并添加标记(点)。