我正在使用OpenLayers來顯示地圖,而AdminLte則用於界面。OpenLayers:如何在側邊欄摺疊後重繪地圖?
我的問題:崩潰時給定頁面上的主要左側邊欄,所有的箱子,它包含的變化大小是什麼(我真的不知道怎麼做)這樣的地圖變得更大也。問題是,當它發生時,地圖上顯示的所有功能顯然都會改變位置,而不是它們應該在的位置。
我想要什麼:要在側欄摺疊後重繪地圖。
有什麼建議嗎?
我想:
$('.navbar-collapse').on('shown.bs.collapse', function() {
map.updateSize();
});
和:
$('.sidebar').on('shown.bs.collapse', function() {
map.updateSize();
});
但無濟於事......
編輯:我的問題是類似這樣的:OpenLayers: How to re-align mouse coordinates and vector layers after fluid css rendering of map div但他的解決辦法不適用於我:)
編輯2:只是澄清:我認爲我的問題的解決方案是在邊欄完成摺疊時調用map.updateSize()方法。問題是,我不知道如何捕捉邊欄完成合攏/展開的時刻!
對不起,我是OpenLayers的新手:) 但是你的變量映射會是什麼?一個ol.Map對象? –
你的變量可能是你用來實例化你的地圖的任何東西(無論是在同一個文件或其他地方)。在你的代碼中,你必須有一些代碼類似於'var map = new OpenLayers.Map('map');'? –
我願意! :) 但是當我試圖做map.getSource()。changed();我有: Uncaught TypeError:map.getSource不是一個函數。 所以我看了看API,顯然ol.Map對象沒有.getSource()方法。 –