Tôi gọi getBounds() ngay sau khi gọi hàm fitBounds() và tôi nghĩ rằng tôi sẽ nhận được một ràng buộc hợp lệ khi người bản đồ gần đây và zoom để phù hợp với giới hạn. Thật không may, getBounds() là trở về nil.Bản đồ Google Maps.getBounds() ngay lập tức sau khi gọi đến bản đồ.fitBounds
Các mã để tái sản xuất này là như sau:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<style>
#map {
width: 800px;
height: 400px;
}
</style>
</head>
<body>
<div id='map'></div>
<script>
var myLatlng1 = new google.maps.LatLng(-38.397, 150.644);
var myLatlng2 = new google.maps.LatLng(-34.897, 150.844);
var myLatLngBounds = new google.maps.LatLngBounds(myLatlng1, myLatlng2);
var myOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng(0, 0),
zoom: 0
}
var map = new google.maps.Map(document.getElementById("map"), myOptions);
map.fitBounds(myLatLngBounds);
console.log(map.getMapTypeId());
console.log(map.getZoom());
console.log(map.getBounds());
</script>
</body>
</html>
Có cái gì tôi đang thiếu? Tôi đã không thể tìm thấy bất cứ điều gì trong các tài liệu về tình trạng này. Tôi nhận được gần nhất là một lưu ý trên getBounds nói rằng:
Nếu bản đồ chưa được khởi tạo (tức là loại bản đồ vẫn là rỗng), hoặc trung tâm và thu phóng chưa được đặt thì kết quả là rỗng.
Lưu ý rằng getZoom cũng trả về không xác định. FitBounds() không đặt giá trị này?
EDIT Tôi đã cập nhật mã có thu phóng và trung tâm mặc định, theo đề xuất của Marcelo.
Thiếu dấu phẩy sau LỘ TRÌNH – Marcelo
Cố định các dấu phẩy. –