Skip to content

简介

Leaflet 是一个轻量级、易上手、插件丰富、移动端友好、开源免费的 JavaScript 库,非常适合快速构建交互式地图应用。它拥有 42KB 的极小体积,并支持 IE9+、iOS/Android 老设备。

Leaflet 1.9.4

Leaflet 2.0.0-alpha

  • 2025 年 5 月 18 日 — Leaflet 2.0.0-alpha 版本已发布!
  • 注意: 具体的 2.0 正式版本尚未发布,目前仍处于 Alpha 阶段。

经过两年半的努力,宣布 Leaflet 2.0 的第一个 Alpha 版本发布,标志着其底层现代化重构的重大进展。

核心变化

官方强调:2.0 版本不会破坏所有现有 API,其重点在于底层现代化重构,以提升性能、可维护性和开发体验。

1. 模块化导入方式的改变

  • 从全局对象到 ES 模块导入: 最大的变化之一是从依赖全局 L 对象转变为使用 ES 模块导入。这意味着你将不再直接访问 L.MapL.marker,而是通过 import { Map, marker } from 'leaflet'; 的方式来使用。
  • 影响: 这使得 Leaflet 更容易与现代前端构建工具(如 Webpack, Rollup, Vite)集成,支持 Tree Shaking,从而显著减小最终打包文件的大小。

2. 构造函数和选项对象的标准化

  • 统一的选项对象: 许多构造函数(如 L.Map, L.Marker, L.TileLayer 等)将更倾向于接受一个统一的选项对象作为参数,而不是多个位置参数。这使得 API 更具可读性和可扩展性。
  • 示例(假设):
    • 旧版:
    js
    L.map("mapid", { zoomControl: false, center: [51.505, -0.09], zoom: 13 });
    • 新版:
    js
    new Map("mapid", { zoomControl: false, center: [51.505, -0.09], zoom: 13 });

3. 事件系统和异步操作的改进

  • 可能会引入更细粒度的事件,并对异步操作(如加载数据、动画完成)提供 Promise 或 async/await 支持,以简化异步编程和提供更精确的控制。

4. 废弃和移除旧有 API

  • 为了保持库的精简和现代化,一些在 1.x 版本中已被标记为“不推荐使用”(deprecated)的 API 可能会被彻底移除。

5. TypeScript 类型定义的增强

  • 预计将提供更完善、更准确的内置 TypeScript 类型定义,为 TypeScript 用户提供更好的开发体验,包括自动补全和类型检查。

总结

目前 Leaflet 的稳定版本依旧为 1.9.4。然而,2.0 及未来版本代表着 Leaflet 的发展趋势,将带来更现代化、高性能和易于维护的地图开发体验。

leaflet 包管理