Клуб API Карт

Изменение масштаба карты при смене типа карты

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

Доброго дня!

Задача заключается в том, что при смене типа карты назначить стандартные масштабы (от 0 до 19) для карт "Схема", "Спутник", "Гибрид", а для карты "Статичная карта" масштаб оставить таким же от 0 до 9. Клонил к событиям с картой, но безрезультатно. 

var map = new ymaps.Map('map', {
    center: [51.7801389616403,94.03271099999996],
    zoom: 5,
    type: myTypeMap,
     controls: ['zoomControl']
},
{
    maxZoom: 9,
    minZoom: 0
}
);

map.controls.add(new ymaps.control.TypeSelector(
[
        myTypeMap,
        'yandex#map',
        'yandex#satellite',
        'yandex#hybrid'
]
));

Спасибо за любую информацию.

8 комментариев
Слушать на карте typechange и выставлять ей нужный minZoom, maxZoom
Обновлено 13 мая 2017, 17:59
huurak-chingis
14 мая 2017, 09:01
dimik,
 спасибо за совет! Решилась задача, но мне хочется у вас также спросить о корректности написания этого кода в JS API 2.1.


map.events.add('typechange', function () {
    if(map.getType() == 'yandex#map') {
             map.options.set('maxZoom', 19);
             map.options.set('minZoom', 0);
    } else if(map.getType() == 'yandex#satellite') {
             map.options.set('maxZoom', 19);
             map.options.set('minZoom', 0);
     } else if(map.getType() == 'yandex#hybrid') {
             map.options.set('maxZoom', 19);
             map.options.set('minZoom', 0);
      } else if(map.getType() == myTypeMap) {
             map.options.set('maxZoom', 9);
             map.options.set('minZoom', 0);
       }
});
Обновлено 14 мая 2017, 09:03
huurak-chingis,
В таких случаях обычно используют switch


map.events.add('typechange', function() {
  switch (map.getType()) {
    case 'yandex#map':
    case 'yandex#satellite':
    case 'yandex# hybrid':
      map.options.set('maxZoom', 19);
      map.options.set('minZoom', 0);
    break;
    default: // map.getType() == myTypeMap
      map.options.set('maxZoom', 9);
      map.options.set('minZoom', 0);
  }
});
Обновлено 14 мая 2017, 09:47
huurak-chingis
14 мая 2017, 09:05
Последний вопрос, а как можно убрать тип карты "Панорамы"?
huurak-chingis,
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/control.TypeSelector-docpage/#param-parameters.options.panoramasItemMode
huurak-chingis
14 мая 2017, 12:54
dimik,
Спасибо!
huurak-chingis,
Напишите пример, пожалуйста, документация  вещь хорошая, но пока не очень понял как сделать. Спасибо.
huurak-chingis,

Сделал так, работает, но не уверен насчет правильности кода.
var panoramasItemMode = new ymaps.control.TypeSelector({
options: {
panoramasItemMode: "off"
}
});
myMap.controls.add(panoramasItemMode);