mapbox-gl-js v2.0 新功能预览新特性

速览新特性

v2 版本添加的主要是支持地形、自定义天空、相机API,以及性能方面的提升。

  • 例子:添加3D地形:v1.x 中的各种图层可以和地形一起使用,新的 Mapbox 栅格数据API服务提供了地形服务。
  • 例子:天空图层:在倾角(pitch)较大时,Mapbox v2 添加了一个天空图层,这个图层填充了地平线处的天空样式。可以用渐变颜色填充,也可以用散射光来模拟。
  • 例子:Camera API:v2 提供了一个较为底层的相机接口,官方名称叫做 FreeCamera API,允许用户添加各种相机动画。
  • 性能提升:加载时间最多减少50%;官方测试中,中间的地图加载时间缩短了 30%;优化了资源加载和任务调度,以便CPU算力用于用户自己的代码

迁移至 v2 注意事项

  • 不再支持 IE11。如果继续使用 IE11,请使用 Mapbox Static Tile API 来构建非交互式地图,或者跟另外的库(Mapbox.js、leaflet等)开发交互式地图。
  • 必须使用 access token 才能初始化 Map 对象。
  • v2 对于地图的加载是无条件的,不管有没有请求官方托管的瓦片服务、什么时候创建 Map 对象。

访问令牌定价策略(Web地图请求)

每月50000免费次数,5~10w 每 1000 个收 5美元,10~20w 每 1000 个收 4美元,20~100w 每 1000 个收 3美元。当然,你自己配地图服务、矢量切片样式,不请求官方数据,应该就不收费,但是令牌还是得设置。

更新日志:2.0.0

⚠️大改动

mapbox-gl-js 不再使用 3-Clause BSD 许可,升级这个版本即默认你同意 Mapbox服务条款

参考 “LICENSE.txt” 文档来查看最新的许可细节。有问题请在 https://support.mapbox.com 联系官方。

从 2.0.0 开始,初始化 Map 对象时商业地图就会加载。若想从 1.x 升级到 2.x,请查看 价格手册 来估算你的成本。

此版本不再适配 IE 11。

相机 pitch 值解锁到 85度。默认的 maxPitch 增至 85度,可以近似于地表水平线的观察角度。默认情况下,地平线处的地图绘制是透明的,不过你可以添加天空图层来填充这部分空间。实例化 Map 时,传递 maxPitch: 60 就能与原来一样了。

✨ 新特性与改进

  • 添加三维地形要素。现在可以使用新的 terrain 顶级样式属性或使用 map.setTerrain() 方法来控制所有图层、marker 的高程。
  • 解锁 pitch 值到 最大85度。
  • 在地平线上方添加一个天空图层作为无限远的背景。可从样式规范中找到两个有关的属性:atmospheregradient
  • 添加了较为宽松自由的 camera API,可以使用 map.getFreeCameraOptions()map.setFreeCameraOptions() 进行更复杂的3D 相机操作。
  • 性能提升:二段式的切片加载策略,先处理非符号图层
  • 性能提升:不解析已终止的矢量切片
  • 性能提升:使用预先着色器编译策略
  • 性能提升:初始化地图时禁用符号和栅格瓦片的淡入动画
  • 性能提升:所有平台默认采用 2 个 Worker
  • 性能提升:Map 初始化加载时,在主线程加载切片
  • 性能提升:使用更好的Worker任务调度机制

🐞 问题修复

  • 当 RTLTextPlugin 加载时,避免加载 栅格瓦片和栅格地形瓦片
  • 在缩放级别为浮点数和倾斜视图时,针对符号摆放的准确性,添加了运行时标签冲突检测计算
  • 修复地形资源的缓存大小
  • 修复DEM在worker上不释放内存
  • 减少了 fill-extrusion 的内存占用
posted @ 2020-12-09 10:20  岭南灯火  阅读(2861)  评论(0编辑  收藏  举报