可能重复:
中心地图和缩放以适应屏幕上的标记
我只是在写一个使用谷歌地图的应用程序。该应用程序将多个点添加到地图中。添加后,我希望能够将地图集中在这些多个点上,但不知道如何。
到目前为止,我的倾向是执行以下操作:
- 添加点时,跟踪最小经度、最大经度、最小纬度、最大纬度
- 计算平均经度,平均纬度
所以..现在我知道如何找到我的地图中心了。
有谁知道我将如何计算缩放?
可能重复:
中心地图和缩放以适应屏幕上的标记
我只是在写一个使用谷歌地图的应用程序。该应用程序将多个点添加到地图中。添加后,我希望能够将地图集中在这些多个点上,但不知道如何。
到目前为止,我的倾向是执行以下操作:
所以..现在我知道如何找到我的地图中心了。
有谁知道我将如何计算缩放?
将位置添加到空的google.maps.LatLngBounds对象。
在结果边界上调用google.maps.Map.fitBounds 。
伪代码(未经测试,假设您的标记位于名为 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);
如果您提前知道点(标记),而不是将所有中心的点设置为 setCenter 标记点并休息为标记并设置 Zoomlevel
如果您事先不知道点并且知道位置(例如特定的州或县或地区)而不是获取它的中心点获取它的纬度/经度并将该点设置为 setCenter 标记点,请相应地设置缩放级别并添加标记(点)。