MaxZoom и пользовательский ввод - программирование
Подтвердить что ты не робот

MaxZoom и пользовательский ввод

Я хочу ограничить максимальный уровень масштабирования пользователей с помощью входов (прокрутки муз и т.д.) и кнопок. Другими словами, я ограничиваю "maxZoom" на -lets say-level9. Но я все еще хочу, чтобы в особых условиях можно было увеличить до уровня 10. Когда я устанавливаю maxZoom, он, очевидно, не позволяет мне больше масштабировать, так что это мое решение в этом случае?

4b9b3361

Ответ 1

Для установки максимального уровня масштабирования:

map._layersMaxZoom = 15 (который устанавливает максимальный уровень масштабирования как 15)

Аналогично мы можем установить минимальный уровень масштабирования:

map._layersMinZoom = 2, (который устанавливает минимальный уровень масштабирования как 2).

Другой способ сделать то же самое -

map.options.maxZoom = 15;

map.options.minZoom = 10;

Ответ 2

Вы можете установить максимальный уровень масштабирования карты динамически с помощью map.options.maxZoom в этих особых условиях и установить его, когда вы закончите.

Ответ 3

Это работает для меня:

L.tileLayer('...', {minZoom: 5, maxZoom: 15}). addTo (map)

Ответ 4

Если вы показываете элементы управления и вы меняете параметры maxZoom или minZoom, элементы управления не будут обновляться. Например, если ваш минимальный уровень масштабирования равен 10, а текущий уровень масштабирования - 10, управление уменьшением масштаба будет отключено, даже если вы измените уровень масштабирования.

Обходным решением для этого решения является запуск события "zoomend" на карте:

map.options.minZoom = 9;
map.fire('zoomend');

Вы также можете подумать о вызове метода setZoom(), если вы измените уровни масштабирования max/min таким образом, чтобы недействительным текущий уровень масштабирования.