【问题标题】:Focus Google Maps after adding Multiple points [duplicate]添加多个点后关注谷歌地图[重复]
【发布时间】:2013-02-04 21:08:25
【问题描述】:

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

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

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

  1. 添加点时,跟踪最小经度、最大经度、最小纬度、最大纬度
  2. 计算平均经度、平均纬度

所以.. 现在我知道如何找到我的地图中心了。

有人知道我将如何计算缩放比例吗?

【问题讨论】:

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


    【解决方案1】:

    将位置添加到一个空的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);
    

    【讨论】:

    • 谢谢!我假设我会将 LatLngBounds 设置为 min / max lat / lng (也许+一点缓冲区)?干杯!
    • 其实如果你创建一个空的bounds对象,用bounds.extend(marker.getPosition())添加你所有的标记,然后调用map.fitBounds(bounds),效果很好。
    • 谢谢兄弟!这有助于吨
    【解决方案2】:

    如果您提前知道点(标记),而不是将所有中心的点设置为 setCenter 标记点,其余点作为标记并设置缩放级别

    如果您事先不知道点并且知道位置(例如特定州或县或地区)而不是获取它的中心点获取它的纬度/经度并将该点设置为 setCenter 标记点,请相应地设置缩放级别并添加标记(点)。

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多