Как изменить цвет значка MarkerCluster, но сохранить оригинальный дизайн значка - PullRequest
1 голос
/ 22 мая 2019

У меня большой веб-проект с интерактивной картой, где все отлично работает.Последними элементами, которые нужно сделать, являются стилизация, и я хотел бы просто (или я так думал) изменить цвет ClusterMarker по умолчанию.Мне очень нравится эстетика кругов с количеством элементов в кластере, но я хотел бы иметь 8/9 разных цветов, а не 3 по умолчанию (зеленый, желтый и красный).

У меня естьпопробовал следующие многочисленные ответы на вопросы stackoverflow и документацию, но ни один из ответов не работает.

Ниже приведено то, что у меня есть:

var markersEU = new L.MarkerClusterGroup({
    showCoverageOnHover: false,
    iconCreateFunction: function(cluster) {
        var t = cluster.getChildCount();
        return new L.divIcon(
            {
                html: "<div><span>" + t + "</span></div>",
                className: "leaflet-marker-icon marker-cluster marker-cluster-eu leaflet-zoom-animated leaflet-interactive",
                iconSize: new L.Point(40, 40)
            }
        );
    }
});

А вот файл MarkerCluster.Default.css

.marker-cluster-small {
    background-color: rgba(181, 226, 140, 0.6);
    }
.marker-cluster-small div {
    background-color: rgba(110, 204, 57, 0.6);
    }

.marker-cluster-medium {
    background-color: rgba(241, 211, 87, 0.6);
    }
.marker-cluster-medium div {
    background-color: rgba(240, 194, 12, 0.6);
    }

.marker-cluster-large {
    background-color: rgba(253, 156, 115, 0.6);
    }
.marker-cluster-large div {
    background-color: rgba(241, 128, 23, 0.6);
    }

.marker-cluster-eu {
    background-color: rgba(74, 74, 206, 0.6);
    }
.marker-cluster-eu div{
    background-color: rgba(35, 35, 200, 0.6);
    }

    /* IE 6-8 fallback colors */
.leaflet-oldie .marker-cluster-small {
    background-color: rgb(181, 226, 140);
    }
.leaflet-oldie .marker-cluster-small div {
    background-color: rgb(110, 204, 57);
    }

.leaflet-oldie .marker-cluster-medium {
    background-color: rgb(241, 211, 87);
    }
.leaflet-oldie .marker-cluster-medium div {
    background-color: rgb(240, 194, 12);
    }

.leaflet-oldie .marker-cluster-large {
    background-color: rgb(253, 156, 115);
    }
.leaflet-oldie .marker-cluster-large div {
    background-color: rgb(241, 128, 23);
}

.leaflet-oldie .marker-cluster-eu {
    background-color: rgb(74, 74, 206);
    }
.leaflet-oldie .marker-cluster-eu div{
    background-color: rgb(35, 35, 200);
}

.marker-cluster {
    background-clip: padding-box;
    border-radius: 20px;
    }
.marker-cluster div {
    width: 30px;
    height: 30px;
    margin-left: 5px;
    margin-top: 5px;

    text-align: center;
    border-radius: 15px;
    font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif;
    }
.marker-cluster span {
    line-height: 30px;
    }

Как вы можете видеть, я не изменил ничего в стиле по умолчанию, кроме того, что добавил свой собственный стиль marker-cluster-eu.

Вот github, где все есть (если это поможет найти решение): https://github.com/MaxMichel2/PWEB

Чтобы сделать вещи совершенно ясными, я хотел бы оставить ВСЁ по умолчанию для кластеров и их эстетики и ТОЛЬКО изменить цвет.

Заранее спасибо!

...