OpenLayers 6.13 新特性


1 概述

6.13 版本带来了一些新特性:

  • 对于每个图层对象,你可以使用 layer.getData() 方法来获取它的像素数据
  • ol/style/Text 支持了富文本标签,可以在一个标签中用不同的字体、样式了
  • 模块 ol/proj 中,useGeographic()setUserProjection() 方法现在已经是官方 API 了,这两个方法使得地理坐标或局部投影坐标系的使用更简单
  • 改进提升了 WebGL 瓦片和点图层
  • 改善了 ol/Feature 的性能,当其没有回调时避免事件的创建
  • 升级 geotiff.js 到第二版,修复了一些社区反馈的问题
  • 修复了自动生成的 Typescript 类型

2 细节

2.1 新方法 - layer.getData()

栅格图层(静态图像、影像瓦片、数据瓦片)现在都拥有了 layer.getData(pixel) 方法,能返回给定 pixel 处的像素数据。返回值取决于图层的数据类型。

例如,GeoTIFF 返回的是 Float32Array,即每个波段一个值;而对于 PNG 静态图片渲染的瓦片图层,则返回代表了 RGBA 值的 Uint8ClampedArray 数组。

如果你之前使用的是 map.forEachLayerAtPixel() 方法,那么你就应该用这个新的方法作为替代。旧的这个方法是从多个图层取值并合成一个变量返回的,并且仅限于 RGBA 数值。新的方法不仅修改了这个问题,而且性能更好。

2.2 弃用方法 - map.forEachLayerAtPixel()

map.forEachLayerAtPixel() 方法将于下个主要发行版本中移除。

热门相关:斗神战帝