如何为 OpenLayers 图层分配唯一标识符?

How can I assign a unique identifier to OpenLayers layers?

OpenLayers 库是否提供了 assign/get 添加到地图的层的唯一标识符的方法,还是我必须自己实现它?

这个问题是因为我需要唯一地标识我添加到地图中的各种类型的层(主要是 LayerGroup 和 TileLayer),并为我在 [=26= 中并行创建的每个层提供相同的参考 ID ]-of-content-like DIV(如 ol-layerswitcher)。 这样我就可以在地图中唯一地识别我的 layer/group 图层及其 DOM 上下文(我可以在其中控制它的可见性、缩放等)。

我认为类似的东西会存在,因为它看起来相当重要,但我似乎无法在文档中找到它而不是在 API。

这个问题与 this other question of mine 有关,我基本上假设 assigning/retrieving 图层 ids 的内置方法不存在,我试图弄清楚如何扩展 OpenLayers 类 以及随时随地实现和获取这些属性的方法。

感谢 @Mike 帮助我找到解决方案。

答案是使用 ol/util.getUid

调用 getUid 方法并将层传递给它,自动为层分配一个唯一的 ID,该 ID 可以存储在变量中以在应用程序的其他地方使用它。

简单示例:

import { getUid } from 'ol/util';
import TileLayer from 'ol/layer/Tile';

// create a new layer
var myLayer = new TileLayer();
var myLayerId = getUid(myLayer);
console.log(myLayerId) // logs the unique id of the layer