使用此处地图的不同颜色噪声标记
Different color to noise marker using here maps
使用此处的地图进行聚类时,是否可以对不同的噪声标记应用不同的颜色api?
有一个 theming option 可用,但它适用于所有标记。我想根据特定条件为特定点设置特定颜色。
这当然可以使用自定义主题。 H.clustering.DataPoint
对象的定义包括一个 data()
method 可以保存任意数据。
当您准备数据集时,您可以添加它,如下所示:
var dataPoints = [];
dataPoints.push(new H.clustering.DataPoint(lat, lng, null, {color :'red'}));
dataPoints.push(new H.clustering.DataPoint(lat, lng, null, {color :'green'}));
dataPoints.push(new H.clustering.DataPoint(lat, lng, null, {color :'blue'}));
// etc ...
如果你使用自定义主题,你可以从噪声点读取数据并显示为你认为合适的:
function colorfulClusteringTheme() {
var baseTheme = new H.clustering.DefaultTheme();
this.getClusterPresentation = function (cluster) {
var clusterIcon = baseTheme.getClusterPresentation(cluster).getIcon();
return new H.map.Marker(cluster.getPosition(), {
icon: clusterIcon,
min: cluster.getMinZoom(),
max: cluster.getMaxZoom()
});
};
this.getNoisePresentation = function (noisePoint) {
if (noisePoint.data.color === 'red'){
// add red noise point
return new H.map.Marker(noisePoint.getPosition(), { icon: redIcon });
}
if (noisePoint.data.color === 'green'){
// add red marker
return new H.map.Marker(noisePoint.getPosition(), { icon: greenIcon });
}
if (noisePoint.data.color === 'blue'){
// add blue noise point
return new H.map.Marker(noisePoint.getPosition(), { icon: blueIcon });
}
};
};
您可以按照通常的方式将主题添加到地图中:
var clusteredDataProvider = new H.clustering.Provider(dataPoints, {
clusteringOptions: {
eps: 16,
minWeight: 5
},
theme: new colorfulClusteringTheme()
});
var clusteringLayer = new H.map.layer.ObjectLayer(clusteredDataProvider);
map.addLayer(clusteringLayer);
使用此处的地图进行聚类时,是否可以对不同的噪声标记应用不同的颜色api?
有一个 theming option 可用,但它适用于所有标记。我想根据特定条件为特定点设置特定颜色。
这当然可以使用自定义主题。 H.clustering.DataPoint
对象的定义包括一个 data()
method 可以保存任意数据。
当您准备数据集时,您可以添加它,如下所示:
var dataPoints = [];
dataPoints.push(new H.clustering.DataPoint(lat, lng, null, {color :'red'}));
dataPoints.push(new H.clustering.DataPoint(lat, lng, null, {color :'green'}));
dataPoints.push(new H.clustering.DataPoint(lat, lng, null, {color :'blue'}));
// etc ...
如果你使用自定义主题,你可以从噪声点读取数据并显示为你认为合适的:
function colorfulClusteringTheme() {
var baseTheme = new H.clustering.DefaultTheme();
this.getClusterPresentation = function (cluster) {
var clusterIcon = baseTheme.getClusterPresentation(cluster).getIcon();
return new H.map.Marker(cluster.getPosition(), {
icon: clusterIcon,
min: cluster.getMinZoom(),
max: cluster.getMaxZoom()
});
};
this.getNoisePresentation = function (noisePoint) {
if (noisePoint.data.color === 'red'){
// add red noise point
return new H.map.Marker(noisePoint.getPosition(), { icon: redIcon });
}
if (noisePoint.data.color === 'green'){
// add red marker
return new H.map.Marker(noisePoint.getPosition(), { icon: greenIcon });
}
if (noisePoint.data.color === 'blue'){
// add blue noise point
return new H.map.Marker(noisePoint.getPosition(), { icon: blueIcon });
}
};
};
您可以按照通常的方式将主题添加到地图中:
var clusteredDataProvider = new H.clustering.Provider(dataPoints, {
clusteringOptions: {
eps: 16,
minWeight: 5
},
theme: new colorfulClusteringTheme()
});
var clusteringLayer = new H.map.layer.ObjectLayer(clusteredDataProvider);
map.addLayer(clusteringLayer);