Здравствуйте.
При изменении уровня зума нужно смещать центр карты (сделано для того, чтобы одна метка с адресом по умолчанию была в поле зрения пользователя).
В JS и API новичок. Нет никакой разницы, использовать установку центра или плавное смещение.
Логика такова. Добавлен многомерный массив, в котором перечислены все уровни зума и кооординаты для них, ну и при изменении уровня зума он берётся, подставляется в индекс массива и получаются координаты.
Также на всех уровнях зума кроме одного показывается только одна метка.
Посмотреть можно здесь: http://microcomponent.ru/test/contacts