开源前端地图库 Leaflet 发布 1.8.0 版本

来源: 投稿
作者: andalousie
2022-04-20 09:19:00

Leaflet 是一个开源的 JavaScript 库,用于构建 Web 地图应用。首次发布于 2011 年,它支持大多数移动和桌面平台,支持 HTML5 和 CSS3。其用户包括FourSquare、Pinterest和Flickr。

Leaflet发布了 v1.8.0 版本,这是一年半以来的开发成果。这是一个巨大的版本,主要集中在错误修复,主要的可靠性和可访问性的改进,清理遗留代码,以及对文档、开发工作流程和发布过程的大量改进。这是数百人的贡献的结晶,也是为未来更大的变化做准备。🍃从现在开始,发布将变得更加频繁。

Leaflet 的作者 Vladimir Agafonkin 来自乌克兰,在他开发这个版本的时候,外面的基辅正在响起空袭警报,警告说俄罗斯即将进行空袭。他希望这个版本献给乌克兰为自由和民主对抗俄罗斯入侵的斗争🇺🇦。

⚠️ 打破向后兼容的改动

  • 通过引入新的 TapHold 处理程序,替换传统的 Tap (#7026,@johnd0e) ,提高移动 Safari 上右键菜单事件模拟的可靠性
  • 重新组织 DivOverlay/Popup/Tooltip api (#7540 by @johnd0e)
    • 将 Popup 相关选项从 DivOverlay 移动到 Popup(#7778 by @Falke-Design)
    • 将 Tooltip 类从 leaflet-clickable 改为 leaflet-interactive(#7719 by @Falke-Design)
    • Map.closeTooltip 现在需要一个 Layer 作为参数(#7533 by @johnd0e)
  • 改进事件监听器的错误/参数处理(#7518 by @johnd0e)
  • 提高非接触设备上触摸事件模拟的可靠性(DomEvent.Pointer)(#7059,#7084,#7415 by @johnd0e)
  • 提高触摸设备上 dblclick 事件模拟的可靠性(DomEvent.DoubleTap)(#7027 by @johnd0e)
  • 提高 disablecklickpropagation 的可靠性(#7439 by @johnd0e)
  • 改进 Map hasLayer() 和 LayerGroup hasLayer() ,使其需要一个层作为参数(#6999 by @johnd0e)
  • 修复 Class.include 不覆盖选项(#7756 by @johnd0e)
  • 修正 Class.extend 以不修改源 props 对象(#6766 by @johnd0e)
  • 改进 Browser.touch 触摸设备检测(#7029 by @johnd0e)
  • 去除遗留的安卓hack(#7022 by @johnd0e)
  • 允许字体通过使字体大小相对于地图容器来尊重用户的浏览器设置。(如果需要的话,你可以改变 leaflet-container 上的字体大小来调整它。)(#7800,@chandu-4444)

❇️ API 变化

  • 使 DivOverlay/Tooltip 具有交互性(#7531,#7532 by @johnd0e)
  • 给 DivOverlay 添加 openOn,close,toggle函数 (#6639 by @johnd0e)
  • 引入 DomEvent.off (el) 以删除所有监听器(#7125 by @johnd0e)
  • 允许通过向 Util.formatNum/tenojson (#7100 by @johnd0e)传递 false 来防止舍入错误
  • 添加 autoPanOnFocus 到 Marker (#8042 by @IvanSanchez)
  • 将 referrerPolicy 添加到 TileLayer (#7945 by @natevw)
  • 将 playsInline 添加到 VideoOverlay (#7928,@falke-Design)
  • 添加 getCenter 到 ImageOverlay (#7848 by @Falke-Design)
  • 当 TileLayer 加载取消时,启动一个 tileabort 事件(#6786 by @dstndstn)
  • 在 Icon 中添加 crossOrigin(#7298 by @syedmuhammadabid)

✨ 改进

  • 通过删除 will-change CSS 属性(#7872 by @janjaap)改善内存占用
  • 提高图标路径检测试探法的可靠性(#7092 by @johnd0e)
  • 通过避免 GridLayer.onAdd (#7570 by @johnd0e)中的过度更新,提高添加平铺源的性能
  • 改进 panInside 中边缘情况的处理(#7469 by @daverapayment)
  • 缩小标记图标 SVG (#7600 by @rala72)
  • 允许在 TileLayer URL 中使用带空格的模板键(#7216 by @lubojr)
  • 改进绑定到 ImageOverlay (#7306 by @IvanSanchez)的 Tooltip 行为
  • 删除 Popup 和内容对话框之间的间隙(#7920 by @Malvoz)
  • 如果没有图层,可以通过 Canvas 触发 mousemove 事件(#7809 by @johnd0e)
  • 添加打印样式,以防止打印机删除控件中的背景图像(#7851 by @Malvoz)
  • 将属性代码从 Layer 移动到 Control.Attribution (#7764 by @johnd0e)
  • 重构 vmlCreate() ,这样它就不会将闭包暴露给 TypeError (#7279 by @darcyparker)
  • 提高 Control.Layers 的可靠性,不依赖浏览器 android 和触摸属性(#7057 by @johnd0e)
  • 通过不依赖浏览器的触摸检查(#7535, @johnd0e)来提高 Tooltip 的可靠性
  • 使浏览器易于自动化测试(#7335 by @bozdoz)
  • 在 Control.Layers 容器中用 span 替换 div,以修复 HTML 验证错误(#7914 by @tmiaa)
  • 添加一面乌克兰国旗作为默认署名(@mourner,#8109)

更多变更请查看 https://github.com/Leaflet/Leaflet/releases/tag/v1.8.0。

展开阅读全文
精彩评论
开发环境不就一定了,用npm安装到本地后做一些骚操作还是可以的。
2022-04-20 15:15
2
举报
额,这你就想错了。你在你的pc上开发的时候。他可能用NODE为他的库做了些骚操作。之前有个会根据俄罗斯的IP删除文件的。信不过啊,信不过。建议别用。
2022-04-20 11:27
2
举报
这是浏览器上运行的前端库,不会影响到系统的。
2022-04-20 11:19
1
举报
7 收藏
分享
8 评论
7 收藏
分享
返回顶部
顶部