【问题标题】:Calculate the initial best center AND best initial zoom depending on a list of location根据位置列表计算初始最佳中心和最佳初始缩放
【发布时间】:2011-05-04 09:11:35
【问题描述】:

亲爱的。我是位置编码方面的新手,所以很好。

我有一个位置列表(纬度和经度),可以是任何地方(即:都在同一个城市;一个在孟加拉国,一个在巴黎......)。

初始化谷歌地图时,我想以这些位置的重心为中心。

所以这是我的第一个问题:如何用位置对象计算重心

然后,我还希望初始地图显示所有位置(标记)。所以这是缩放的问题,也是我的第二个问题:如何计算谷歌地图的缩放,以便显示地图上的所有标记

我希望我已经清楚了。另外,请注意,我的意思是重心,所有点都为 1。

最好的问候。

【问题讨论】:

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


    【解决方案1】:

    缩放以包含一组结果:

    var locations = new google.maps.LatLngBounds();
    ...
    function zoomToViewports(locations) {
      var bounds = new google.maps.LatLngBounds();
    
      for (var i in locations) {
        bounds.union(locations[i].geometry.viewport);
      }
      map.fitBounds(bounds);
    }
    

    完成后,重心位于屏幕中间,因此如果您确实需要它的值,很容易计算出 [(max(lat)-min(lat)/2,(max(lng)-min(lng )/2]

    HTH?

    欢迎您将 JS 从 this page on my website 中提取出来,正如您所描述的那样

    【讨论】:

    • 是的,这有帮助。事实上,在写完这篇文章后,我想出了让谷歌找到我的东西的关键词。我没有使用 bounds.union 而是 extends 。 “extend(point:LatLng) LatLngBounds 扩展此边界以包含给定点。” vs "union(other:LatLngBounds) LatLngBounds 扩展此边界以包含此边界和给定边界的并集。" - 我不明白其中的区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2010-12-30
    • 2023-03-04
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多