JavaScript API 的 HERE 地图:如何从地图中获取所有噪声点标记和聚类?
HERE maps for JavaScript API: How to get all noise points markers and clusters from the map?
我需要找到所有 .requestMarkers
其中 returns 所有与提供的矩形区域相交的聚类和噪声点标记。
现在我可以在地图的可视侧找到所有标记和集群
let viewBounds = map.getViewBounds(); //view bounds of map
let mapZoom = map.getZoom(); //map zoom
let arrayPoints = clusteredDataProvider.requestMarkers(viewBounds,mapZoom); //marker and cluster that we can see on map
但是如何从所有地图中获取这些标记和集群?
您应该在 Provider's options. All is explained in Clustering custom theme 示例中定义您的主题。 theme
需要两次回调,您应该在其中创建地图对象。例如,您可以将它添加到某个全局数组以供以后使用:
let objects = [];
let CUSTOM_THEME = {
getClusterPresentation: function(cluster) {
let marker = new H.map.Marker(cluster.getPosition());
objects.push(marker);
return marker;
}
getNoisePresentation: function(noisePoint) {
let marker = new H.map.Marker(noisePoint.getPosition());
objects.push(marker);
return marker;
}
}
let clusteredDataProvider = new H.clustering.Provider(
<YOUR_DATA_POINTS>,
{
theme: CUSTOM_THEME
});
这是一个简单的 jsfiddle 示例,它计算所有聚类和噪声点。
注意:此外,在 API 3.1 版中,您可以简单地调用 clusteredDataProvider.getRootGroup().getObjects()
我需要找到所有 .requestMarkers
其中 returns 所有与提供的矩形区域相交的聚类和噪声点标记。
现在我可以在地图的可视侧找到所有标记和集群
let viewBounds = map.getViewBounds(); //view bounds of map
let mapZoom = map.getZoom(); //map zoom
let arrayPoints = clusteredDataProvider.requestMarkers(viewBounds,mapZoom); //marker and cluster that we can see on map
但是如何从所有地图中获取这些标记和集群?
您应该在 Provider's options. All is explained in Clustering custom theme 示例中定义您的主题。 theme
需要两次回调,您应该在其中创建地图对象。例如,您可以将它添加到某个全局数组以供以后使用:
let objects = [];
let CUSTOM_THEME = {
getClusterPresentation: function(cluster) {
let marker = new H.map.Marker(cluster.getPosition());
objects.push(marker);
return marker;
}
getNoisePresentation: function(noisePoint) {
let marker = new H.map.Marker(noisePoint.getPosition());
objects.push(marker);
return marker;
}
}
let clusteredDataProvider = new H.clustering.Provider(
<YOUR_DATA_POINTS>,
{
theme: CUSTOM_THEME
});
这是一个简单的 jsfiddle 示例,它计算所有聚类和噪声点。
注意:此外,在 API 3.1 版中,您可以简单地调用 clusteredDataProvider.getRootGroup().getObjects()