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()
方法将于下个主要发行版本中移除。