HERE Maps JS API v3 - 自定义群集标记的颜色

时间:2015-04-23 14:12:54

标签: javascript maps here-api

我知道我可以轻松覆盖版本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模板?

1 个答案:

答案 0 :(得分:1)

从我在mapsjs-clustering.js的压缩代码中可以看出,默认主题中的逻辑比仅为每个群集创建新标记要多一些。似乎发生的情况是API使用canvas元素动态地为每个可能的图标呈现图像,然后根据集群的权重继续为每个标记重用(get / putImageData调用)。这里有一些我能够弄清楚他们创建图标的地方:

<math.h>

因此,要更改颜色属性,您几乎完全对图标绘制代码进行逆向工程并重写它。不确定这是一个值得的方法......