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