转载自:http://www.cnblogs.com/qiongmiaoer/archive/2013/03/09/2951706.html
使用到百度api获取到的bounds,相信大家都会觉得蹩脚,因为它不是我们常遇到的诸如(minX,minY,maxX,maxY)、或者(LBlng,LBlat,RTlng,RTlat)类似的字段形式,而是一堆aa、bb、cc之类的,这里对百度返回的bounds各字段做一个解释:
需要查看bounds的童鞋可以清楚的看到各个角点经纬度值。
一、使用百度api,获取地图当前bounds值,源代码为:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body, html, #allmap
{
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
<title>获取地图bounds</title>
</head>
<body>
<div id="allmap">
</div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
var bounds = map.getBounds();
</script>
二、运行结果图:
三、矩形bounds放入坐标系中查看经纬度,一目了然:
四、bounds四个角点经纬度值分别为:
左上角点LTPoint: ( bounds.Cf.lng, bounds.uf.lat) 右上角点RTPoint: (bounds.uf.lng, bounds.uf.lat)
(bounds.cc, bounds.Zb) (bounds.$b, bounds.Zb)
左下角点LBPoint: (bounds.Cf.lng, bounds.Cf.lat) 右下角点RBPoint: (bounds.uf,lng,bounds.Cf.lat)
(bounds.cc, bounds.bc) (bounds.$b,bounds.bc)
五、bounds中含有获取两个角点坐标的方法:
从第一个截图中可以看到bounds的实例方法getNorthEast()、getSouthWest(),通过两个方法分别可以获取东北角(右上角)、西南角(左下角)坐标。
因而:
左上角点LTPoint: ( bounds.getSouthWest().lng, bounds.getNorthEast().lat) 右上角点RTPoint: bounds.getNorthEast()
左下角点LBPoint: bounds.getSouthWest() 右下角点RBPoint: bounds.getNorthEast().lng,bounds.getSouthWest().lat)