Here api 如何从这里检索特定图层映射JS?

Here api 如何从这里检索特定图层映射JS?,here-api,Here Api,我将数据点添加到提供者中,然后添加到绑定到地图的层中 稍后我想编辑一些数据点,要做到这一点,我需要从地图中检索图层,然后检索提供者 我通过获取一个层数组来尝试,但我不知道哪一个是带有数据点的层 let clusterDataProvider = new H.clustering.Provider(dataPoints, { clusteringOptions: { eps: 16, minWeight: 2,

我将数据点添加到提供者中,然后添加到绑定到地图的层中

稍后我想编辑一些数据点,要做到这一点,我需要从地图中检索图层,然后检索提供者

我通过获取一个层数组来尝试,但我不知道哪一个是带有数据点的层

let clusterDataProvider = new H.clustering.Provider(dataPoints, {
          clusteringOptions: {
            eps: 16,
            minWeight: 2,
            strategy: H.clustering.Provider.Strategy.GRID
          },
          theme: {
            getClusterPresentation: this.getClusterPresentation,
            getNoisePresentation: this.getNoisePresentation
          }
        })
      }),
let layer = hereMap.getLayers().asArray().find(layer => layer instanceof H.map.layer.ObjectLayer)
    if(!layer) {
      layer = new H.map.layer.ObjectLayer(clusterDataProvider)
      hereMap.addLayer(layer, 0);
    }
    layer.getProvider()
但是ofc在我的地图中可能有很多
ObjectLayers
,所以我如何通过
clusterDataProvider
识别哪一个是对象层呢


或者任何人对如何编辑特定图层或群集提供程序有更好的了解?

您可以使用以下代码检索图层:

function findClusterLayer(hereMap){
    let layer = hereMap.getLayers().asArray().find(layer => {
      let isObjLayer = layer instanceof H.map.layer.ObjectLayer;
      return isObjLayer && (layer.getProvider() instanceof H.clustering.Provider);
  });
  return layer;
}
不幸的是,您无法从层或群集提供程序获取数据点,请使用如下解决方法:

var clusteringLayer = new H.map.layer.ObjectLayer(clusteredDataProvider);
clusteringLayer.$data = dataPoints;
var layer = findClusterLayer(map);
var dataPoints = layer.$data;
稍后,您可以获得如下数据点:

var clusteringLayer = new H.map.layer.ObjectLayer(clusteredDataProvider);
clusteringLayer.$data = dataPoints;
var layer = findClusterLayer(map);
var dataPoints = layer.$data;
更改某些数据点后,将其保存到群集:

clusteredDataProvider.setDataPoints(dataPoints);
请看

顺便说一句:您可以将一些对象保存到每个数据点,请参阅