最近花了兩晚上的時間寫了一個google地圖的應用程序,采用了map api,weather api,localsearch api,我想的是有空寫一些關于Google Map API的文章,今天就寫一個關于自動縮放地圖到合適級別的方法,這里說的自動縮放,指的是地圖上已經加入了很多Gmarker點,而這些點任何地方都有,我們為了要它們在地圖上能夠都顯示出來,必須要個Google Map設置一個合適的縮放級別和中心點,這里用的方法是Google Map API的GLatLngBounds。
假設我們創建的Google Map對象為gmap = new GMap2(),我們添加所有GMarker都保存在一個名字為markers的數組里,它們的點遍布各地,我們要做的就是要這些點都在地圖上顯示出來,也就是自動縮放地圖(set auto zoom)。
首先我們bounds = new GLatLngBounds();,然后我們使用一個循環把所有的GMarker中的GLatLng對象傳給bounds,即:bounds.extend(markers[i].getLatLng()),做完循環之后我們就可以通過以下的代碼set auto zoom了:
gmap.setCenter(bounds.getCenter(),gmap.getBoundsZoomLevel(bounds);
結合起來就是下面的setAutoZoom的函數:
function setAutoZoom(gmap,markers){
var i=markers.length,bounds = new GLatLngBounds();
while(i--){
bounds.extend(new GLatLng(markers[i].y,markers[i].x));
}
gmap.setCenter(bounds.getCenter(),gmap.getBoundsZoomLevel(bounds));
}
查看:Google Map Api setAutoZoom實例