我知道我可以轻松覆盖版本2.5.x中的nokia.maps.clustering.MarkerTheme.getColor
来自定义 群集标记的颜色,但似乎有&# 39;在版本3.0.x中没有简单的方法。
我的意思是,我可以实现这个H.clustering.ITheme
接口,但是对于入侵color属性感觉真的很痛苦。这是我到目前为止的代码(仅显示相关代码):
var defaultTheme = clusteredDataProvider.getTheme(),
customTheme = {
/**
*
* @implements {H.clustering.ITheme.getClusterPresentation}
*/
getClusterPresentation: function (cluster) {
var clusterMarker = defaultTheme.getClusterPresentation
.call(defaultTheme, cluster);
/*
* TODO: Change the color property of the cluster marker.
* Hmm. How am I supposed to best do it?
*/
return clusterMarker;
},
/**
*
* @implements {H.clustering.ITheme.getNoisePresentation}
*/
getNoisePresentation: function (noisePoint) {
var noiseMarker = defaultTheme.getNoisePresentation
.call(defaultTheme, noisePoint);
return noiseMarker;
}
};
HERE Maps是否有我可以使用的群集标记的基本SVG模板?
答案 0 :(得分:1)
从我在mapsjs-clustering.js的压缩代码中可以看出,默认主题中的逻辑比仅为每个群集创建新标记要多一些。似乎发生的情况是API使用canvas元素动态地为每个可能的图标呈现图像,然后根据集群的权重继续为每个标记重用(get / putImageData调用)。这里有一些我能够弄清楚他们创建图标的地方:
<math.h>
因此,要更改颜色属性,您几乎完全对图标绘制代码进行逆向工程并重写它。不确定这是一个值得的方法......