/
githubmirror
/
Leaflet
Обзор
Документация
Войти
/
githubmirror
/
Leaflet
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/map/handler/DoubleClickZoomHandler.js
55 строк
2 KB
Simon Legner
Handler: stop exposing modules on other classes (#10058)
07 янв 2026, 21:45
Не верифицирован
07 янв 2026, 21:45
9753ace
Код
Авторство
О чём код?
import {LeafletMap} from '../Map.js'; import {Handler} from '../../core/Handler.js'; /* * Handler.DoubleClickZoom is used to handle double-click zoom on the map, enabled by default. */ // @namespace LeafletMap // @section Interaction Options LeafletMap.mergeOptions({ // @option doubleClickZoom: Boolean|String = true // Whether the map can be zoomed in by double clicking on it and // zoomed out by double clicking while holding shift. If passed // `'center'`, double-click zoom will zoom to the center of the // view regardless of where the pointer was. doubleClickZoom: true }); export class DoubleClickZoomHandler extends Handler { addHooks() { this._map.on('dblclick', this._onDoubleClick, this); } removeHooks() { this._map.off('dblclick', this._onDoubleClick, this); } _onDoubleClick(e) { const map = this._map, oldZoom = map.getZoom(), delta = map.options.zoomDelta, zoom = e.originalEvent.shiftKey ? oldZoom - delta : oldZoom + delta; if (map.options.doubleClickZoom === 'center') { map.setZoom(zoom); } else { map.setZoomAround(e.containerPoint, zoom); } } } // @section Handlers // // Map properties include interaction handlers that allow you to control // interaction behavior in runtime, enabling or disabling certain features such // as dragging or touch zoom (see `Handler` methods). For example: // // ```js // map.doubleClickZoom.disable(); // ``` // // @property doubleClickZoom: Handler // Double click zoom handler. LeafletMap.addInitHook('addHandler', 'doubleClickZoom', DoubleClickZoomHandler);