为什么我不能使用getBounds函数获得经度和纬度?

时间:2015-08-01 08:02:55

标签: javascript google-maps google-maps-api-3

var map;

function initialize(location) {

var currentPosition = new google.maps.LatLng(14.457264, 121.024038);
var mapOptions = {
  center: currentPosition,
  zoom: 12,
  mapTypeId: google.maps.MapTypeId.ROADMAP,
};

map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions)

var marker = new google.maps.Marker({
  position: currentPosition,
  map: map,
  icon: "../images/02_button_add.png"
});

var bounds = map.getBounds();
alert(bounds);
}

以上是我的代码,我可以在地图上找到我当前的位置。 但是,当尝试使用信息进行警报时,getBounds函数不起作用,因此它会给出“未定义”值。

有什么不对吗?

2 个答案:

答案 0 :(得分:1)

您必须实现一个侦听器才能使getBounds()正确显示

我建议使用此代码(编辑)

 google.maps.event.addListenerOnce(map, 'idle', function(){

   var bounds = map.getBounds();
   alert(bounds);
});

这是你的小提琴,所以你可以测试它(在它再次加载点击之后):http://jsfiddle.net/vA4eQ/280/

答案 1 :(得分:0)

根据Google文档,

  

的getBounds()

     

返回值:LatLngBounds   返回当前视口的lat / lng范围。如果可以看到世界的多个副本,则边界的范围为-180到180度(包括-180和180度)。 如果地图尚未初始化(即mapType仍然为null),或者尚未设置居中和缩放,则结果为null或未定义。

因此,您必须先初始化地图。