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);
请看
顺便说一句:您可以将一些对象保存到每个数据点,请参阅