Làm thế nào để vẽ lại / làm mới bản đồ trên vải thay đổi kích thước?


9

Tôi đã tạo một trang web có chứa nút để đặt toàn màn hình bản đồ và trở về dạng bình thường, bản đồ sự cố không được đặt thành toàn màn hình cho đến khi tôi thay đổi kích thước cửa sổ đầu ra, cách khắc phục điều này,

Bất kỳ hướng dẫn và giúp đỡ được đánh giá cao.

Dưới đây là ví dụ hoạt động: Demo


Câu trả lời:



5

Bạn có thể sử dụng OpenLayers.Map.updateSizephương pháp để vẽ lại Lớp cơ sở của mình khi bạn tối đa hóa bản đồ.

Vì vậy, thêm một chức năng như:

var fullScreen = function () {
    map.baseLayer().redraw();
}

bạn chỉ cần thêm một tùy chọn bổ sung vào bản đồ của mình:

var map = new OpenLayers.Map({
    div: "map",
    center: new OpenLayers.LonLat(0, 0),
    updateSize: fullScreen,
    minResolution: "auto",
    minExtent: new OpenLayers.Bounds(-1, -1, 1, 1),
    maxResolution: "auto",
    maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
    projection: Mercator,
    displayProjection: Geographic
});

Chúc may mắn!


Nó không đặt bản đồ thành toàn màn hình, bạn có thể vui lòng cập nhật fiddle không.
bios

Cảm ơn. Tôi đã có gạch trở thành màu trắng khi phóng to sử dụng transitionEffect: 'resize'. map.baseLayer().redraw();Đã sửa nó.
Nicolas Boisteault

0

Viết mã sau đây bất cứ khi nào bạn được yêu cầu vẽ lại bản đồ như thay đổi kích thước cửa sổ hoặc thay đổi tab hoặc toàn màn hình hoặc trên bất kỳ sự kiện nào khác theo nhu cầu của bạn.

$(window).trigger('resize');

điều này sẽ tự động kích hoạt updateSize()chức năng trong nội bộ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.