首页 > JavaScript > Google Map API教程之如何自动缩放级别(setAutoZoom)

Google Map API教程之如何自动缩放级别(setAutoZoom)

最近花了两晚上的时间写了一个google地图的应用程序,采用了map apiweather apilocalsearch 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实例

相关文章

"Google Map API教程之如何自动缩放级别(setAutoZoom)"已有5条评论
    juliana

    嗯,总结的很详细,支持一下!
    请教楼主,你在用google map的时候有没有遇到过这样的问题:
    google map 地图添加多边形区域时,用IE浏览器有时会出现“未指明的错误”和“对象不支持此属性或方法”,错误代码指向的是google map的main.js,在firefox下是从来不会出现这个问题的。有的时候又是没问题的,并且在新打开的网页,第一次访问的时候出现的机率大,而按“Ctrl+F5”后运行正常,区域也都画出来了。
    还有一个特点是,我在本机访问,一直都没有问题的,不论是IE6,IE7还是IE8,而在外网访问却会老出现这样的bug。
    希望能给点建议,此bug在IE6中出现的机率较大,在IE8中偶尔出现。

    2010年06月27日 20:15 回复 引用

    juliana

    对了,如果您看到,请加我的MSN:juansjz2007@hotmail.com 非常期待与你交流一二

    2010年06月27日 20:16 回复 引用

    断桥残雪

    这个问题没碰见过哦~我一般不开msn的

    2010年06月27日 20:22 回复 引用

    juliana

    ???为什么不开MSN呀?那能不能指点一下呢,第一次访问出现js错误,刷新后没有问题,会不会是因为第一次时google map api没有加载完,刷新时此时浏览器中有缓存,此时加载完了从而没有问题呢?

    2010年06月27日 20:28 回复 引用

    断桥残雪

    有可能是这个原因,最近谷歌经常被墙,我也把部分代码下载下来了~没办法~

    2010年06月27日 20:31 回复 引用

文明发言,你好我也好
正在提交,请稍后...
返回顶部