Skip to content

🗺️ 一、初始化与基本配置

控件选项

参数类型默认值说明
attributionControlBooleantrue是否显示右下角版权信息控件
zoomControlBooleantrue是否显示左上角缩放控件

交互选项

参数类型默认值说明
draggingBooleantrue是否允许鼠标/触摸拖动地图
closePopupOnClickBooleantrue点击地图关闭弹窗
doubleClickZoomBoolean|Stringtrue双击缩放('center' 表示固定中心缩放)
boxZoomBooleantrue是否允许按住 Shift + 拖动矩形框缩放
zoomSnapNumber1强制地图的缩放级别始终是这个的倍数
zoomDeltaNumber1缩放级别在 zoomIn() 、 zoomOut() 、 或使用缩放控件后变化多少
trackResizeBooleantrue地图是否随窗口大小调整

平移惯性选项

参数类型默认值说明
inertiaBoolean-如果启用,地图平移将具有惯性效果,默认启用
inertiaDecelerationNumber3000惯性移动减速的速率,单位为像素/秒 ²。
inertiaMaxSpeedNumberInfinity惯性移动的最大速度,单位为像素/秒
easeLinearityNumber0.2惯性移动的线性度,值越小越线性
worldCopyJumpBooleanfalse启用世界拷贝跳转(启用后,地图会在 180 度经线处断开)
maxBoundsViscosityNumber0.0设置了 maxBounds 后, 0.0 允许用户以正常速度拖动到边界外

键盘导航选项

参数类型默认值说明
keyboardBooleantrue允许用户使用键盘箭头键和 + / - 键来导航地图
keyboardPanDeltaNumber80按下箭头键时平移的像素数量

鼠标滚轮选项

参数类型默认值说明
scrollWheelZoomBooleantrue是否启用鼠标滚轮缩放
wheelDebounceTimeNumber40限制滚轮触发速率(以毫秒为单位)
wheelPxPerZoomLevelNumber60鼠标滚轮每一级别缩放的像素数量

触摸交互选项

参数类型默认值说明
touchZoomBoolean/String*是否启用触摸缩放交互
tapHoldBoolean-启用 contextmenu 事件的模拟,移动 Safari 为 true
tapToleranceNumber15用户在触摸时可以移动手指的最大像素数
bounceAtZoomLimitsBooleantrue当用户缩放地图到最大或最小缩放级别时,地图是否会反弹

地图状态

参数类型默认值说明
centerLatLng-初始中心坐标(如 [51.505, -0.09]
zoomNumber-初始缩放级别(如 13
crsCRSL.CRS.EPSG3857使用的坐标参考系统
minZoom/maxZoomNumber-最小/最大缩放级别
layersArray-地图图层数组
maxBoundsLatLngBounds-地图边界限制(用户无法平移超出此范围)
rendererRenderer-在地图上绘制矢量层的默认方法

动画选项

参数类型默认值说明
zoomAnimationBooleantrue是否启用缩放动画(Android 默认禁用)
zoomAnimationThresholdNumber4如果缩放差异超过此值,则不会进行缩放动画
fadeAnimationBooleantrue是否启用图层淡入淡出动画
markerZoomAnimationBooleantrue标记是否随缩放动画同步显示
transform3DLimitNumber2^23定义 CSS 平移变换的最大尺寸

⚙️ 二、核心常用属性

属性名类型说明
zoomNumber当前缩放级别
centerLatLng地图中心点坐标
maxBoundsLatLngBounds当前地图可视区域边界
layersArray已添加到地图的所有图层
zoomControlControl.Zoom缩放控件实例(可通过 map.zoomControl.disable() 禁用)
draggingHandler拖拽交互处理器实例
boxZoomHandler框选缩放交互处理器实例

事件

图层事件

事件说明
layeradd图层添加到地图时触发
layerremove图层从地图移除时触发
overlayadd叠加图层添加到地图时触发
overlayremove叠加图层从地图移除时触发
baselayerchange底图图层切换时触发

地图状态变化事件

事件说明
zoomlevelschange当因添加或移除图层导致地图上的缩放级别发生变化时触发
resize地图尺寸变化时触发
load地图加载完成时触发
unload当使用 remove 方法销毁地图时触发
viewreset当地图需要重绘其内容时触发,对于创建自定义覆盖物非常有用
zoomstart地图缩放开始时触发
movestart地图移动开始时触发
move地图移动时触发
moveend地图移动结束时触发
zoom地图缩放时触发
zoomend地图缩放结束时触发

弹窗事件

事件说明
popupopen弹窗打开时触发
popupclose弹窗关闭时触发
autopanstart当地图在打开弹窗时开始自动平移时触发

工具提示事件

事件说明
tooltipopen当地图中打开提示框时触发
tooltipclose当地图中的提示框关闭时触发

位置事件

事件说明
locationfound定位成功时触发
locationerror定位失败时触发

交互事件

事件说明
click地图点击事件
dblclick地图双击事件
mousedown鼠标按下事件
mouseup鼠标抬起事件
mouseover鼠标移入事件
mouseout鼠标移出事件
mousemove鼠标移动事件
contextmenu鼠标右键点击事件
keydown键盘按下事件
keyup键盘抬起事件
preclick在地图上鼠标点击之前触发

其他事件

事件类型触发时机
zoomanim在每次缩放动画至少触发一次

⚡️ 三、核心方法

1. 图层与控件管理

方法名返回值说明
addLayer(layer)this添加图层(如 TileLayer, Marker
removeLayer(layer)this移除指定图层
hasLayer(layer)Boolean检查图层是否存在
addControl(control)this添加控件(如 L.control.scale()
removeControl(control)this移除控件
eachLayer(callback)this遍历所有图层
openPopup(popup)this打开指定弹窗(自动关闭其他弹窗)
closePopup(popup?)this关闭弹窗(不指定则关闭所有)
openTooltip(tooltip)this打开指定工具提示
closeTooltip(tooltip?)this关闭工具提示(不指定则关闭所有)

2. 视图操作

方法名返回值说明
setView(center, zoom, options?)this设置中心点和缩放级别(带动画)
setZoom(zoom)this直接设置缩放级别(无动画)
zoomIn(options?)this放大地图(带动画)
zoomOut(options?)this缩小地图(带动画)
setZoomAround(latlng, zoom)this围绕指定点缩放(保持该点位置不变)
fitBounds(bounds, options?)this自适应调整视图以完整显示给定区域
fitWorld(options?)this自适应调整视图以显示整个世界
panTo(latlng, options?)this平移到指定坐标(平滑移动)
panBy(offset, options?)this平移地图(带动画效果)
flyTo(latlng, zoom, options?)this平滑飞行到目标位置(动画效果)
flyToBounds(bounds, options?)this设置地图视图,执行类似 flyTo 的平滑动画
setMaxBounds(bounds)this设置地图最大可显示区域
setMinZoom(zoom)this设置地图允许的最小缩放级别
setMaxZoom(zoom)this设置地图允许的最大缩放级别
panInsideBounds(latlng, options?)this平移地图,确保指定点在最大可显示区域内
panInsideMinZoom(latlng, options?)this平移地图,确保指定点在最小可显示区域内
invalidateSize(options?)this强制重新计算地图尺寸(容器大小变化后调用)
stop()this停止地图动画

3. 状态获取

方法名返回值说明
getCenter()LatLng返回当前中心点
getZoom()Number返回当前缩放级别
getBounds()LatLngBounds返回地图可视区域边界
getMinZoom()Number获取地图允许的最小缩放级别
getMaxZoom()Number获取地图允许的最大缩放级别
getBoundsZoom(bounds,padding?)Number返回地图可视区域的缩放级别
getSize()Point返回地图容器的像素尺寸
getPixelBounds()LatLngBounds返回地图可视区域边界的像素坐标
getPixelOrigin()Point返回地图容器的像素坐标原点
getPixelWorldBounds()LatLngBounds返回 zoom 级别的世界边界像素坐标
padding
选项名类型默认值说明
paddingPoint[0, 0]地图边界与视图边界的间距(像素)
paddingTopLeftPoint[0, 0]设置地图容器左上角的填充量
paddingBottomRightPoint[0, 0]地图右下角的填充量

4. 地理定位

方法名返回值说明
locate(options?)this获取用户位置
stopLocate()this停止持续定位监听
options
选项名类型默认值说明
enableHighAccuracyBooleanfalse启用高精度定位
maximumAgeNumber0定位结果缓存时间(毫秒)
timeoutNumberInfinity定位超时时间(毫秒)
watchBooleanfalse启用监听模式
setViewBooleanfalse定位成功后是否设置视图
maxZoomNumberInfinity定位成功后最大缩放级别

5. 转换方法

方法名返回值说明
latLngToLayerPoint(latlng)Point将地理坐标转为视图内像素坐标(相对于地图容器左上角)
layerPointToLatLng(point)LatLng将视图内像素坐标转为地理坐标
latLngToContainerPoint(latlng)Point将地理坐标转为容器像素坐标(包含滚动条偏移)
containerPointToLayerPoint(point)Point将容器像素坐标转为视图内像素坐标
containerPointToLatLng(point)LatLng将容器像素坐标转为地理坐标
layerPointToContainerPoint(point)Point将视图内像素坐标转为容器像素坐标
mouseEventToLayerPoint(e)Point将鼠标事件坐标转为视图内像素坐标
mouseEventToContainerPoint(e)Point将鼠标事件坐标转为容器像素坐标
mouseEventToLatLng(e)LatLng将鼠标事件坐标直接转为地理坐标
project(latlng, zoom)Point将地理坐标转为投影坐标系像素坐标(基于 CRS 原点)
unproject(point, zoom)LatLng将投影坐标系像素坐标转为地理坐标
wrapLatLng(latlng)LatLng将经纬度规范到 CRS 范围内(如经度-180°~180°)
wrapLatLngBounds(bounds)LatLngBounds将经纬度边界规范到 CRS 范围内(如经度-180°~180°)
distance(latlng1, latlng2)Number计算两点间地理距离(单位:米)
getZoomScale(toZoom, fromZoom)Number计算两个缩放级别间的比例因子
getScaleZoom(scale, fromZoom)Number根据比例因子计算目标缩放级别

6. 其他方法

方法名返回值说明
removeHandler(eventName, handler)this销毁地图并清除所有相关的事件监听器
addHandler(eventName, handler)this向地图添加一个新的 Handler ,需要提供其名称和构造函数
createPane(name)this创建一个新的图层叠层,需要提供图层叠层的名称
getPane(HTMLElement)HTMLElement根据其名称或其 HTML 元素(其标识)返回一个地图面板
getPanes()Object返回一个普通对象,其中包含所有层的名称作为键,层作为值
getContainer()HTMLElement返回地图容器的 HTML 元素(其标识)