繁体   English   中英

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

[英]Why can't I get latitude and longitude using getBounds function?

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函数不起作用,因此会给出“未定义”的值。

有什么问题吗?

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

我建议这段代码(编辑)

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

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

这是您的小提琴,因此您可以对其进行测试(加载后,请再次单击“运行”): http : //jsfiddle.net/vA4eQ/280/

根据Google文档,

的getBounds()

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM