OpenLayersを使用してマップを表示し、そのインターフェイスのAdminLteを使用しています。OpenLayers:サイドバーが折りたたまれた後にマップを再描画するにはどうすればよいですか?
問題:特定のページでメインの左側のサイドバーを折りたたむと、すべてのボックスとその内容がサイズが変わります(実際はわかりません)ので、マップも大きくなります。問題が発生すると、マップに表示されているすべての機能が位置を変えてしまい、もはやどこにあるのかわかりません。
私が希望するもの:サイドバーが折りたたまれた後でマップを再描画するには
提案がありますか?
私が試した:
$('.navbar-collapse').on('shown.bs.collapse', function() {
map.updateSize();
});
と:
$('.sidebar').on('shown.bs.collapse', function() {
map.updateSize();
});
が、無駄にし...
EDIT:私の質問はこの1つのようになります。OpenLayers: How to re-align mouse coordinates and vector layers after fluid css rendering of map divが、彼のソリューションを私のために働いていません:)
EDIT 2:明確にする:私の問題の解決策は、サイドバーの折り畳みが終了したときにmap.updateSize()メソッドを呼び出すことだと思います。問題は、サイドバーの折り畳み/拡大が完了した瞬間をどのように捕まえるのか分からないことです。
申し訳ありません、私はOpenLayersにかなり新しいです:) しかし、あなたの可変マップは何ですか? ol.Mapオブジェクト? –
変数は、マップをインスタンス化するために使用したもの(同じファイル内や他の場所にあるもの)でも構いません。あなたのコードのどこかに、 'var map = new OpenLayers.Map( 'map');'と似たようなコードが必要です。 –
私はそうです! :) しかし、私はmap.getSource()をしようとしたときに変更();私は持っていた: 未知の型エラー:map.getSourceは関数ではありません。 私はAPIを見て、明らかにol.Mapオブジェクトには.getSource()メソッドがありません。 –