1

sencha touch を使用して esri マップをレンダリングする際に問題が発生しました。マップを含むタブと他の 3 つのタブを含む tabPanel を表示します。

私の問題は、マップタブ以外の別のタブにいるときに、ウィンドウのサイズを変更する (または電話の向きを変更する) と、マップが消えることです。

問題の原因を特定しました。別のタブにあるウィンドウのサイズを変更すると、マップ タブが現在のサイズから 0x0 になり、新しいサイズになります。問題は、幅と高さが 0x0 に設定されている場合、Esri マップが寸法 0x0 のタイルを必要とし、エラーが表示されることです。

minWidth と minHeight をタブに設定しようとしましたが、成功しませんでした。

どうすればそれを修正できるか手がかりがありますか??

前もって感謝します !

4

1 に答える 1

1

私も同じ問題を抱えていたと思います(当時、正確な原因はわかりませんでした)。画面の向きが変わるたびに、esriマップのサイズを手動で変更してパネルに一致させ、マップの再配置とサイズ変更の方法を実行していました。ただし、これが別のパネルから起動された場合、ベースマップはマップから削除されます。

向きが変わるたびに、またはマップパネルがアクティブに設定されるたびに次の関数を呼び出すことで、これを修正することができました。

function resizeMapDiv(){
    if (appPanel.getActiveItem() === mapPanel){
        var mapdiv = document.getElementById('mapDiv');
        var mappanel = document.getElementById('mapPanel');

        if ((mapdiv != null) && (mappanel != null) && (mapdiv.style.width != mappanel.style.width)){
            mapdiv.style.width = mappanel.style.width;
            mapdiv.style.height = mappanel.style.height;

            map.reposition();
            map.resize();
        }
    }
}
于 2011-07-25T18:41:36.047 に答える