Визуализация карты Esri в Сенча-Touch - PullRequest
1 голос
/ 11 июля 2011

У меня проблема с рендерингом карты esri с помощью sencha touch. Я отображаю tabPanel с вкладкой, содержащей карту, и 3 другими вкладками.

Моя проблема в том, что когда я нахожусь на другой вкладке, кроме вкладки карты, когда я изменяю размер окна (или меняю ориентацию телефона), карта исчезает.

Я определил источник проблемы. когда я изменяю размер окна, находящегося на другой вкладке, вкладка карты переходит от текущего размера к 0x0 к новому размеру. Проблема заключается в том, что когда ширина и высота установлены на 0x0, для карты Esri требуются листы размером 0x0, и затем появляется ошибка.

Я попытался установить minWidth и minHeight для моей вкладки, но безуспешно.

у вас есть какие-либо подсказки, как я могу это исправить?

заранее спасибо!

1 Ответ

1 голос
/ 25 июля 2011

Я думаю, что у меня была та же проблема (я не знал точной причины в то время). Всякий раз, когда изменялась ориентация экрана, я вручную изменял размеры карты 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();
        }
    }
}
...