Tuvali yeniden boyutlandırmak için haritayı nasıl yeniden çizebilir / yenileyebilirim?


9

Haritayı tam ekran ve normal biçimine geri döndürmek için bir düğme içeren bir web sayfası oluşturdum, çıkış penceresini yeniden boyutlandırana kadar sorun haritası tam ekrana ayarlanmıyor, bunun üstesinden gelmek,

Herhangi bir rehberlik ve yardım takdir edilmektedir.

İşte çalışma örneği: Demo


Yanıtlar:


13

map.updateSize();Sonuna ekle$("#btn-full-screen").click...

DEMO

updateSize belgeleri

Bu işlev, harita div'inin boyutunu dinamik olarak değiştiren herhangi bir harici kod tarafından çağrılmalıdır (çünkü mozilla, bir öğe için "onresize" yakalamamıza izin vermez)


5

OpenLayers.Map.updateSizeHaritayı büyüttüğünüzde, temel Katmanınızı yeniden çizmek için yöntemi kullanabilirsiniz .

Yani, aşağıdaki gibi bir işlev eklemek:

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

haritanıza yalnızca ek bir seçenek eklemeniz gerekir:

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

İyi şanslar!


Haritayı tam ekrana ayarlamaz, lütfen kemanı güncelleyebilir misiniz?
bios

Teşekkürler. Kullanarak zum yaparken fayans beyaz oldu vardı transitionEffect: 'resize'. map.baseLayer().redraw();onu düzeltti.
Nicolas Boisteault

0

Haritayı pencere yeniden boyutlandırma veya sekme değiştirme veya tam ekran gibi veya ihtiyacınıza göre başka herhangi bir olayda yeniden çizmeniz gerektiğinde aşağıdaki kodu yazın.

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

bu otomatik olarak updateSize()fonksiyonu dahili olarak tetikleyecektir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.