2010-11-03 17 views
1

親愛的所有人。我在位置編碼方面很新,所以很好。根據位置列表計算初始最佳中心和最佳初始縮放

我有一個位置列表(經緯度& lng),這可能確實在任何地方(即:都在同一個城市;一個在孟加拉國,一個在巴黎......)。

當初始化谷歌地圖時,我想集中在這些位置上的重心。

所以這是我的第一個問題:如何計算與位置對象重心

然後,我還要初始地圖不顯示所有位置(標記)。所以這是一個縮放問題,是我的第二個問題:如何計算谷歌地圖中的縮放比例,以便顯示地圖上的所有標記

我希望我已經清楚。另外,請注意,我的意思是重心繫數爲1.

此致敬禮。

回答

4

要放大到包括一組結果:

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?

歡迎您從this page on my website解除JS,它做什麼你描述

+0

沒錯,這有幫助。事實上,在寫這篇文章之後,我想出了谷歌的關鍵字來找到我的東西。我沒有使用bounds.union,而是擴展。 「extend(point:LatLng)\t LatLngBounds \t擴展此邊界以包含給定的點。」 vs「union(other:LatLngBounds)\t LatLngBounds \t擴展此邊界以包含此和給定邊界的聯合。」 - 我沒有區別。 – 2010-11-03 09:33:47

相關問題