Как получить доступ к свойству кластера по свойству markerclusterer - PullRequest
0 голосов
/ 24 октября 2019

Мои кластеры работают на карте 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 };
    };

Но, опять же, нетуспех. Может кто-нибудь помочь мне, как это сделать?

...