2013-08-26 37 views
6

Theo câu hỏi trước đây Google maps responsive resize Tôi muốn thực hiện một mức thu phóng khác nhau dựa trên kích thước cửa sổ, vì vậy nếu cửa sổ trình duyệt "ít hơn" áp dụng x số thu phóng và nếu "lớn hơn "tự động áp dụng mức thu phóng khác.Google maps đặt thu phóng khác nhau dựa trên kích thước cửa sổ

Các mã sau hoạt động hoàn hảo trong trường hợp của recentering bản đồ trên cửa sổ thay đổi kích thước, tôi cần phải áp dụng các mức thu phóng mới cho nó:

var map; 
function initialize() { 
    var mapOptions = { 
    center: new google.maps.LatLng(40.5472,12.282715), 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
google.maps.event.addDomListener(window, "resize", function() { 
    var center = map.getCenter(); 
    google.maps.event.trigger(map, "resize"); 
    map.setCenter(center); 
    map.setZoom(zoom level needs to be automatically set according to window size); 
}); 
+0

có lẽ đơn giản nhất để xác định các giới hạn mà bạn muốn hiển thị và sử dụng map.fitBounds thay vì map.setCenter. – geocodezip

+0

Bản đồ có cần chứa một tập hợp các điểm cụ thể không? Có bất kỳ chi tiết nào khác mà bạn có thể cung cấp không? – rsnickell

+0

bản đồ cần chứa một khu vực cụ thể với LatLng cụ thể, các giá trị được cung cấp trong mã ở trên, các điểm đánh dấu sẽ được chứa trong khu vực này –

Trả lời

4

Xây dựng khu vực bạn muốn luôn luôn được theo quan điểm bằng cách tạo ra một LatLngBounds và gọi map.fitBounds() theo đề xuất của mã zip địa lý.

+0

Nếu tôi muốn bản đồ đầy đủ luôn được hiển thị, LatLangBounds của tôi sẽ là gì? – brandozz

+0

Tôi đã chọn các góc phía đông nam và tây bắc nhưng đôi khi tôi thay đổi kích thước trình duyệt, mức thu phóng cho thấy những gì tôi đã đặt ngoài tọa độ của mình. – brandozz

Các vấn đề liên quan