我正在尝试更改Google Maps API Marker Clusterer的级别大小。 默认情况下,标记小尺寸(蓝色图标/ m1):2-9标记,中等大小(黄色图标/ m2):10-100个标记,大级别(红色图标/ m3)大小:101-250个标记。 (如果我错了,请纠正我)。
我想将级别大小的值更改为小于默认值。我找到了另一个主题相同的主题,但我仍然没有明确指出。
这是我认为的Google Maps API标记群集图标:
PS:我没有提到如何更改clusterer图标,我的意思是如何更改大小的值。例如:我如何更改标记的水平大小,使其聚为蓝色(m1),黄色(m2)和红色(m3)?像我之前提到的默认大小,对于m1,它包含2-9个标记,我可以仅将大小值更改为2-5个标记吗?答案 0 :(得分:1)
您需要创建自定义Calculator
功能。从source(Google文档中引用的版本,请务必使用您未使用的版本的文档进行验证)。默认的calculator
函数:
/**
* The function for calculating the cluster icon image.
*
* @param {Array.<google.maps.Marker>} markers The markers in the clusterer.
* @param {number} numStyles The number of styles available.
* @return {Object} A object properties: 'text' (string) and 'index' (number).
* @private
*/
MarkerClusterer.prototype.calculator_ = function(markers, numStyles) {
var index = 0;
var count = markers.length;
var dv = count;
while (dv !== 0) {
dv = parseInt(dv / 10, 10);
index++;
}
index = Math.min(index, numStyles);
return {
text: count,
index: index
};
};
设置它的函数(描述其返回值,索引是图标数组的索引,文本是要在集群上显示的文本):
/**
* Set the calculator function.
*
* @param {function(Array, number)} calculator The function to set as the
* calculator. The function should return a object properties:
* 'text' (string) and 'index' (number).
*
*/
MarkerClusterer.prototype.setCalculator = function(calculator) {
this.calculator_ = calculator;
};