Jak przerysować / odświeżyć mapę przy zmianie rozmiaru płótna?


9

Stworzyłem stronę internetową, która zawiera przycisk do ustawiania pełnego ekranu mapy i powrót do normalnej postaci, mapa problemów nie ustawia się na pełny ekran, dopóki nie zmienię rozmiaru okna wyjściowego, jak to pokonać,

Wszelkie wskazówki i pomoc są mile widziane.

Oto działający przykład: Demo


Odpowiedzi:


13

Dodaj map.updateSize();na końcu$("#btn-full-screen").click...

PRÓBNY

dokumentacja updateSize

Ta funkcja powinna być wywoływana przez dowolny kod zewnętrzny, który dynamicznie zmienia rozmiar div mapy (ponieważ mozilla nie pozwoli nam złapać „onresize” dla elementu)


5

Podczas OpenLayers.Map.updateSizemaksymalizacji mapy można użyć metody do przerysowania warstwy podstawowej.

Dodanie funkcji takiej jak:

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

wystarczy tylko dodać dodatkową opcję do mapy:

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

Powodzenia!


Nie ustawia mapy na pełny ekran, czy możesz zaktualizować skrzypce.
biografie

Dzięki. Kiedy powiększałem przy użyciu, płytki stawały się białe transitionEffect: 'resize'. map.baseLayer().redraw();naprawione.
Nicolas Boisteault

0

Napisz poniższy kod, ilekroć będziesz musiał przerysować mapę, na przykład przy zmianie rozmiaru okna lub zmianie kart lub na pełnym ekranie, lub na dowolnym innym wydarzeniu, zależnie od potrzeb.

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

spowoduje to automatyczne uruchomienie updateSize()funkcji wewnętrznie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.