javascript - map.getBounds() 奇怪的行为(未捕获的类型错误 : Cannot read property 'getNorthEast' of undefined)

标签 javascript google-maps

我刚刚开始使用 Google Maps API。这个问题很容易理解,但我不知道如何解决。这是 Google 为您提供的除警报之外的简单代码示例。

function initialize() {
    var mapOptions = {
        center: { lat: 43.680039, lng: -79.417076},
        zoom: 13
    };
    map = new google.maps.Map(document.getElementById('map'), mapOptions);
    google.maps.event.addListener(map, 'dragend', change );
    google.maps.event.addListener(map, 'zoom_changed', change );

    alert(map.getBounds().getNorthEast().lat());
}
google.maps.event.addDomListener(window, 'load', initialize);

map.getBounds().getNorthEast().lat() 在从除加载之外的任何其他事件调用时工作正常。当它是像缩放或拖动这样的 map 事件时,它工作正常,但是当我尝试在此处调用它时,我收到错误“未捕获的类型错误:无法读取未定义的属性‘getNorthEast’”。任何人都知道这里发生了什么或我该如何解决这个问题?

最佳答案

Google Maps Javascript API v3 是基于事件的。在定义边界之前,您需要等待 map 上的第一个 bounds_changed 事件。

var map;
function initialize() {
  var mapOptions = {
    center: {
      lat: 43.680039,
      lng: -79.417076
    },
    zoom: 13
  };
  map = new google.maps.Map(document.getElementById('map'), mapOptions);
  // google.maps.event.addListener(map, 'dragend', change);
  // google.maps.event.addListener(map, 'zoom_changed', change);
  google.maps.event.addListenerOnce(map, 'bounds_changed', function() {
    alert(map.getBounds().getNorthEast().lat());
  });
}
google.maps.event.addDomListener(window, 'load', initialize);
html,
body,
#map {
  height: 100%;
  width: 100%;
}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div id="map"></div>

关于javascript - map.getBounds() 奇怪的行为(未捕获的类型错误 : Cannot read property 'getNorthEast' of undefined),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27812394/

相关文章:

JavaScript 增加按钮仅增加一次

javascript - 带有 infowindow 的 Google map api 无法正常工作

google-maps - 在谷歌地图中获取标记ID

javascript - 如何清除谷歌地图中的现有标记?

javascript - AngularJS - 使用 Mysql 进行过滤

javascript - 避免写这么多的优雅方法(点击隐藏显示)

javascript - 如何在 cordova/phonegap 中更改 document.body.style.margin

javascript - 将文本输入绑定(bind)到可观察数组的值

javascript - 从 Google Maps API V3 获取旅行距离和旅行时间

javascript - 我的谷歌放置了 kml url javascript