@DMack Я попытался использовать пример, который вы упомянули, но, как я уже упоминал в моем вопросе, этот пример не работает (когда вы слишком сильно увеличиваете масштаб), так что это первая проблема. А также не показывает, как остановить кластеризацию при достижении заданного уровня. Кажется, что он работает достаточно хорошо для данных, которые они имеют, но это вообще не комментируется и делает его очень трудным для понимания, когда вы не знакомы с синтаксисом и концепциями. Как бы вы изменили его, чтобы исправить этот пример (который, я согласен, может быть полезным)?

аюсь нарисовать круг, цвет которого зависит от атрибута "группа" в моем геойсоне. Я последовал простому примеру с этими цветами:

 map.addSource("data", {
    type: "geojson",
    data: url,
    cluster: true,
    clusterMaxZoom: 12, // Max zoom to cluster points on
    clusterRadius: 20 // Radius of each cluster when clustering points (defaults to 50)
});
map.addLayer({
        'id': 'population',
        'type': 'circle',
        'source': 'data',
        'paint': {
            // make circles larger as the user zooms from z12 to z22
            'circle-radius': {
                'base': 1.75,
                'stops': [[12, 2], [22, 180]]
            },
            // color circles by ethnicity, using a match expression
            // https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-match
            'circle-color': {
                'property': 'group',
                'type': 'categorical',
                stops: [
                ['1', 'rgba(252,141,98,0.5)'],
                ['2', 'rgba(141,160,203,0.5)'],
                ['3', 'rgba(141,160,203,0.5)'],
                ['4', 'rgba(141,160,203,0.5)'],
                ['5', 'rgba(141,160,203,0.5)'],
                ['6', 'rgba(141,160,203,0.5)'],
                //'4', '#3bb2d0',
                /* other 'rgba(102,194,165,0.1)'*/
                ]
            }
        }
    },'3d-buildings');

Теперь я также хотел бы, чтобы мои кластеры следовали какой-то цветовой схеме. Например, если кластеры содержат большую часть группы 1, тогда они получают цвет группы 1. То же самое для группы 2 и так далее.

Но все, что я для точек скопления - это черные точки. Мне бы очень хотелось узнать, есть ли способ сделать лучше, чем это.

Я следилэтот пример и обновил его дополнительным"type":"categorical" как того требуют новые версии mapboxgl.

Мои данные - это геойсон, который выглядит так:

{"type": "FeatureCollection", "features": [{"id": 1, "type": "Feature", "properties": {"group":1}, "geometry": {"type": "Point", "coordinates": [17.8304903812012, 59.1886524824444]}}

Кто-нибудь знает, как добиться этого с mapbox?

Редактировать:

Два изображения, чтобы показать проблемы, которые у меня есть в настоящее время. Первое изображение - это в основном моя некластеризованная визуализация, где вы видите два разных цвета на основе двух групп.

Второе изображение - кластерная версия, в которой отображаются только черные кластеры. Я хотел бы, чтобы кластеры с большей частью группы 1 были оранжевыми, а кластеры с большей частью группы 2 - зелеными.

редактировать

Теперь я также видел, что мне, возможно, придется делать это со сверхскоплением, ноединственный правильный пример то, что я обнаружил, сломано (перестает работать, когда мы слишком сильно масштабируем и точки всегда сгруппированы). Также кажется, что это использует старые функции mapbox, которые теперь устарели. Кто-нибудь знает, как легко сделать это на приведенном примере?

Ответы на вопрос(0)

Ваш ответ на вопрос