Bagaimana cara menggambar ulang / me-refresh peta pada ukuran kanvas?

9

Saya telah membuat halaman web yang berisi tombol untuk mengatur peta layar penuh dan kembali ke bentuk normal, peta masalah tidak diatur ke layar penuh sampai saya mengubah ukuran jendela output, cara mengatasinya,

Bimbingan dan bantuan apa pun dihargai.

Berikut ini contoh kerjanya: Demo

bios
sumber
lihat juga di sini gis.stackexchange.com/questions/31409/…
Matthew Lock

Jawaban:

13

Tambahkan map.updateSize();ke akhir$("#btn-full-screen").click...

DEMO

dokumentasi updateSize

Fungsi ini harus dipanggil oleh kode eksternal apa pun yang secara dinamis mengubah ukuran div peta (karena mozilla tidak akan membiarkan kita menangkap "onresize" untuk elemen)

CaptDragon
sumber
5

Anda dapat menggunakan OpenLayers.Map.updateSizemetode untuk menggambar ulang Lapisan dasar Anda ketika Anda memaksimalkan peta.

Jadi, tambahkan fungsi seperti:

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

Anda hanya perlu menambahkan opsi tambahan ke peta Anda:

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
});

Semoga berhasil!

DaniBaeyens
sumber
Itu tidak mengatur peta ke layar penuh, bisa tolong perbarui biola.
bios
Terima kasih. Saya memiliki ubin yang menjadi putih saat zoom menggunakan transitionEffect: 'resize'. map.baseLayer().redraw();memperbaikinya.
Nicolas Boisteault
0

Tuliskan kode berikut setiap kali Anda diminta untuk menggambar ulang peta seperti mengubah ukuran jendela atau mengubah tab atau layar penuh atau pada acara lain sesuai dengan kebutuhan Anda.

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

ini akan secara otomatis memicu updateSize()fungsi secara internal.

Shivek Parmar
sumber