Клуб API Карт

как применить новый размер контейнера к карте API Яндекс.Карт 2.0?

Пост в архиве.

После изменения размема контейнера карты
по клику на метке устанавливаю центр карты на эту метку
при этом метка устаналивается не в центр дива а со смещением, на которое я изменял контейнер карты
выглядит так что карта осталась того же размера, изменился только размер дива

var mapContainer = map.container.getElement();
var new_width = $(mapContainer).width()-150;
$(mapContainer).width(new_width);

/*
var preservePixelPosition = true;
map.container.fitToViewport(preservePixelPosition);
*/

function placemark_onclick(){
  var geometry = this.geometry.getCoordinates();
  map.panTo([geometry]);
}

5 комментариев
Sergey Konstantinov
28 января 2016, 04:26

У меня не получилось воспроизвести эту проблему (если, конечно, раскомментировать строчку map.container.fitToViewport())

fitToViewport мне не помогло,я потому и закомментировал

надо как-то карту обновить

я так понял что fitToViewport аналог redraw

у меня после вызовва fitToViewport новый участок карты не отрисовывается(при увеличении контейнера)

Sergey Konstantinov
28 января 2016, 04:26

Вы что-то делаете неправильно. У меня ваш пример работает в FF и Chrome

Можно страницу увидеть?

проверял в FF и Chrome opera

проблема решилась после того как я добавил строчку(новый размер к карте применился)

$("#YMapsID").width(new_width);

правильно это или нет?

делаю все на localhost

Sergey Konstantinov
28 января 2016, 04:26
А, ну всё правильно сделали. Размер нужно менять контейнеру карты, который указывали при создании.