找出最適的level與座標
這個案例是這樣的。使用者希望在地圖載入地標的時候,不管座標在哪裡,要一次能看到所有的地標。
這時我們可以這樣做。
map.setCenter(new GLatLng(0,0),0); //要先設定map latlng 和 level
bounds = new GLatLngBounds();
bounds = new GLatLngBounds();
在地圖初始的時候,我們並不知道待會要加入的地標後最適合的地圖座標與level,所以我們先給他一個最大的初始值。一定要先給初始值,否則下一句的建立GLatLngBounds物件的時候會發生錯誤。
for(var i = 0; i < points.length; i++)
{
bounds.extend(new GLatLng(lat,lng));
}
{
bounds.extend(new GLatLng(lat,lng));
}
再把你要加入在地圖上的marker的座標給GLatLngBounds.extend的方法。
map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());
map.setCenter(bounds.getCenter());
最後GLatLngBounds丟給GMap2.getBoundsZoomLevel的方法,他就會找出最適的level,再把地圖移動到marker們的中心點,這樣就可以達到在地圖上一次顯示所有輸入地標的功能了。
順手再寫了一下縣市地位、地址定位和經緯度定位的功能在範例裡。有興趣的人請自行連結參考。謝謝大家。
---------------
這是簽名檔,I love Dotblogs