How can I get the current Leaflet map zoom level?
12,481
In pure leaflet if you defined map as const map = L.map("map", options)
than you just call map.getZoom()
.
In constructor this.mapRef = React.createRef()
In Map element:
ref={this.mapRef}
onzoomend={() => console.log(this.mapRef.current.leafletElement.getZoom()}
Related videos on Youtube

Author by
ODLana
Updated on June 04, 2022Comments
-
ODLana 7 months
I'm trying to get the zoom level of a map in real time to make a button that locks the zoom with the current value. I have tried using getMapZoom and getZoom but both give me an undefined value. I think I'm not using the correct ref but I haven't been able to find much documentation about it. Here's the code:
<Map className="map-layer" center={center} onoverlayadd={this.overlayadd} onoverlayremove={this.overlayremove} ondragend={this.zoomChange} onzoomend={console.log('Zoom: ' + this.mapRef.leafletElement.getMapZoom())} zoom={this.state.zoom} ref={this.mapRef} preferCanvas={false} animate={true} scrollWheelZoom={this.state.zoomLock ? false : true} doubleClickZoom={this.state.zoomLock ? false : true} touchZoom={this.state.zoomLock ? false : true} maxZoom={7} minZoom={7} >
-
ODLana almost 3 yearsI have tried that yet, throws an error.
Cannot read property 'getZoom' of undefined
-
radulle almost 3 yearsTry
ref={(ref) => { this.mapRef = ref }}
instead ofref={this.mapRef}
. -
radulle almost 3 yearsI haven't noticed you weren't passing the function to the
onzoomend
. I updated the answer. You should pass functions to other onevent handlers too.