最近花了兩晚上的時(shí)間寫了一個(gè)google地圖的應(yīng)用程序,采用了map api,weather api,localsearch api,我想的是有空寫一些關(guān)于Google Map API的文章,今天就寫一個(gè)關(guān)于自動(dòng)縮放地圖到合適級(jí)別的方法,這里說的自動(dòng)縮放,指的是地圖上已經(jīng)加入了很多Gmarker點(diǎn),而這些點(diǎn)任何地方都有,我們?yōu)榱艘鼈冊(cè)诘貓D上能夠都顯示出來,必須要個(gè)Google Map設(shè)置一個(gè)合適的縮放級(jí)別和中心點(diǎn),這里用的方法是Google Map API的GLatLngBounds。
假設(shè)我們創(chuàng)建的Google Map對(duì)象為gmap = new GMap2(),我們添加所有GMarker都保存在一個(gè)名字為markers的數(shù)組里,它們的點(diǎn)遍布各地,我們要做的就是要這些點(diǎn)都在地圖上顯示出來,也就是自動(dòng)縮放地圖(set auto zoom)。
首先我們bounds = new GLatLngBounds();,然后我們使用一個(gè)循環(huán)把所有的GMarker中的GLatLng對(duì)象傳給bounds,即:bounds.extend(markers[i].getLatLng()),做完循環(huán)之后我們就可以通過以下的代碼set auto zoom了:
gmap.setCenter(bounds.getCenter(),gmap.getBoundsZoomLevel(bounds);
結(jié)合起來就是下面的setAutoZoom的函數(shù):
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實(shí)例