Мои кластеры работают на карте gmaps, но я хотел, чтобы каждый значок кластера представлял определенное свойство маркеров, составляющих кластер.
Теперь я узнаю, как создать SVG, который дает мне эту информациюпредставление. В калькуляторе нужно определить, как передать нужные мне значения в URL каждого стиля кластера. Вот код:
var cluster_styles = [
{
width: 40,
height: 40,
url: getGoogleClusterInlineSvg(prop1, prop2),
textColor: 'white',
textSize: 12
},
{
width: 50,
height: 50,
url: getGoogleClusterInlineSvg(prop1, prop2),
textColor: 'white',
textSize: 14
},
{
width: 60,
height: 60,
url: getGoogleClusterInlineSvg(prop1, prop2),
textColor: 'white',
textSize: 16
}
];
var calc = function (markers, numStyles) {
let total = markers.length;
let totalOn = markers.filter(m => m.status.includes('on'));
let totalOff = markers.filter(m => m.status.includes('off'));
let percentageOn = Math.round(totalOn / totalOn, 2);
let percentageOff = Math.round(totalOn / totalOff, 2);
return { text: markers.length, prop1: percentageOn, prop2: percentageOff };
};
markerCluster = new MarkerClusterer(map, posicoesViaturaOnMap, { styles: cluster_styles });
markerCluster.setCalculator(calc);
В качестве альтернативы я мог бы получить доступ к свойству значка кластера в методе калькулятора и установить его URL-адрес оттуда, например:
var calc = function (markers, numStyles) {
let total = markers.length;
let totalOn = markers.filter(m => m.status.includes('on'));
let totalOff = markers.filter(m => m.status.includes('off'));
let percentageOn = Math.round(totalOn / totalOn, 2);
let percentageOff = Math.round(totalOn / totalOff, 2);
cluster.setIcon = getGoogleClusterInlineSvg(prop1, prop2);
//return { text: markers.length, prop1: percentageOn, prop2: percentageOff };
};
Но, опять же, нетуспех. Может кто-нибудь помочь мне, как это сделать?