【发布时间】:2013-02-04 21:08:25
【问题描述】:
我只是在编写一个使用 Google 地图的应用程序。该应用程序将多个点添加到地图中。添加后,我希望能够将地图集中在这些多个点上,但不知道如何。
到目前为止,我倾向于做以下事情:
- 添加点时,跟踪最小经度、最大经度、最小纬度、最大纬度
- 计算平均经度、平均纬度
所以.. 现在我知道如何找到我的地图中心了。
有人知道我将如何计算缩放比例吗?
【问题讨论】:
标签: google-maps google-maps-api-3
我只是在编写一个使用 Google 地图的应用程序。该应用程序将多个点添加到地图中。添加后,我希望能够将地图集中在这些多个点上,但不知道如何。
到目前为止,我倾向于做以下事情:
所以.. 现在我知道如何找到我的地图中心了。
有人知道我将如何计算缩放比例吗?
【问题讨论】:
标签: google-maps google-maps-api-3
将位置添加到一个空的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 标记点,其余点作为标记并设置缩放级别
如果您事先不知道点并且知道位置(例如特定州或县或地区)而不是获取它的中心点获取它的纬度/经度并将该点设置为 setCenter 标记点,请相应地设置缩放级别并添加标记(点)。
【讨论】: