Клуб API Карт

setZoom

timoninr
27 августа 2010, 12:22

приветствую,

раньше было:

инициализация карты, установка зума, установка центра карты -- все работало, затем в какой-то момент перестало. видимо после обновления API.

как работает сейчас:

инициализация карты, установка центра карты, установка зума.

баг или фича?

спасибо.

9 комментариев
Подписаться на комментарии к посту
А можете дать ссылку на страницу или привести листинг кода, который приводит к ошибке?
map.setZoom( 16 );
map.setCenter( obj.getGeoPoint() );
obj.openBalloon();

в результате зум равен 7


map.setCenter( obj.getGeoPoint() );
obj.openBalloon();
map.setZoom( 16 );


в результате зум равен 16


setZoom устанавливает ближайшее значения из возможных для данной точки и типа карты.

Так, что сначала точка потом зум

Можно писать еще короче:
map.setCenter( obj.getGeoPoint() ,16);


Андрей, а откуда вы взяли описание метода setZoom?
Метод setZoom() устанавливает заданный коэффициент масштабирования и не учитывает при этом пользовательские точки.
Предположил из эксперементов.

такой код (http://api-maps.yandex.ru/1.1/index.xml?key=....)
map.setZoom(55)
map.getZoom()

в Санкт-Петербурге  выдает 17(19) (схема-спутник)
а в антарктиде  7(13)

map.setZoom(-55)
map.getZoom()
всегда  0.

Да, это у нас ошибка. Поправим.
Могу посоветовать применять масштаб, одновременно с центрированием карты:

map.setCenter( obj.getGeoPoint(), 16);
ага, спасибо.
Мы исправили ошибку. Теперь ваш первоначальный код должен работать корректно:

map.setZoom( 16 );
map.setCenter( obj.getGeoPoint() );
obj.openBalloon();
спасибо Саша!

ваша ошибка помогла мне сделать рефакторинг небольшого участка кода, все к лучшему ;-)