Як перемалювати / оновити карту на розмірі полотна?


9

Я створив веб-сторінку, яка містить кнопку, щоб встановити карту на повний екран і повернутися до її нормальної форми; проблема проблеми не встановлюється на повний екран, поки я не зміню вікно виводу, як це подолати,

Будь-які вказівки та допомога цінуються.

Ось робочий приклад: Демо


дивіться також тут gis.stackexchange.com/questions/31409/…
Matthew Lock

Відповіді:


13

Додати map.updateSize();в кінці$("#btn-full-screen").click...

DEMO

updateSize документації

Цю функцію слід викликати будь-яким зовнішнім кодом, який динамічно змінює розмір ділиться на карті (тому що мозіла не будемо вловлювати "onresize" для елемента)


5

Ви можете використовувати OpenLayers.Map.updateSizeметод, щоб перемалювати базовий шар, коли ви максимізуєте карту.

Отже, додавши таку функцію, як:

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

вам потрібно буде лише додати додаткову опцію на свою карту:

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

Удачі!


Він не встановлює карту на весь екран, чи можете ви оновити загадку.
bios

Дякую. У мене при збільшенні масштабування плитки стали білими transitionEffect: 'resize'. map.baseLayer().redraw();виправили це.
Nicolas Boisteault

0

Напишіть наступний код, коли потрібно буде перемальовувати карту, як, наприклад, на розмірі вікон або на зміні вкладок, на повний екран або на будь-яку іншу подію відповідно до ваших потреб.

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

це автоматично запустить updateSize()функцію внутрішньо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.