谷歌地图fitBounds()被打破或..?
问题描述:
<!DOCTYPE html>
<html>
<head>
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta charset="UTF-8">
<style type="text/css">
#map_canvas {
width: 500px;
height: 500px;
}
</style>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>
<script type="text/javascript">
var map;
function initialize() {
var myOptions = {
zoom : 8,
center : new google.maps.LatLng(-34.397, 150.644),
mapTypeId : google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var locationA = {
latitude : 37.788081 + 0.0049,
longitude : -83.001709 + 0.00019
};
var locationB = {
latitude : 37.788081,
longitude : -83.001709
};
var sw = new google.maps.LatLng(locationA.latitude, locationA.longitude);
var ne = new google.maps.LatLng(locationB.latitude, locationB.longitude);
var distance = google.maps.geometry.spherical.computeDistanceBetween(sw, ne);
console.log("Distance between SW & NE: " + distance);
var bounds = new google.maps.LatLngBounds(sw, ne);
console.log(bounds);
map.fitBounds(bounds);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map_canvas"></div>
</body>
</html>
以上的回报这个: 谷歌地图fitBounds()被打破或..?
在开发测试中得到它的意外,清理周围的“错误”,仍然一切,这似乎真的是一个错误。
任何人都可以解释它吗?
设置locationA.longitude
的0.00019
到0
确实显示有效的地图,所以这是非常重要的问题。
答
您的界限无效,南大于北,东大于西。如果您将这些加号切换为负号,它将会加载。我只需创建一个不带参数的LatLngBounds
,然后改为使用bounds.extend
。
var bounds = new google.maps.LatLngBounds();
bounds.extend(sw);
bounds.extend(ne);
+0
尽管如此,不知道'extend()'。非常感谢幽灵! – Poni 2012-07-24 23:59:38
顺便说一句,如果你调试,你会注意到'bounds'得到错误的值。这是它的构造函数的一个问题。 – Poni 2012-07-24 22:57:06