Я построил карту mapbox-gl js (v0.52), в которой точки объединяются в кластеры;очень похоже на пример кластеров со страницы mapbox.
Цвет кластера должен быть функцией агрегации свойств отдельных точек: для простоты, скажем, каждая точка имеет свойство status
, который определяет его цвет, а цвет кластера должен быть просто цветом, соответствующим max
значений каждой из его точек status
.
Пример данных геоджонса будет выглядеть так:
const geoData = {
type: 'FeatureCollection',
features: [
{
type: 'Feature',
properties: {
id: 'fakeid11',
status: 20,
},
geometry: {
type: 'Point',
coordinates: [-151.5129, 63.1016, 0]
}
},
{
type: 'Feature',
properties: {
id: 'fakeid22',
status: 10,
},
geometry: {
type: 'Point',
coordinates: [-150.4048, 63.1224, 105.5]
}
}
]
};
Я пытаюсь использовать clusterProperties
для вычисления агрегации как , описанное в api docs , аналогично этому примеру из исходного кода , чтобы создать этот слой:
map.addSource('earthquakes', {
type: 'geojson',
data: geoData,
cluster: true,
clusterMaxZoom: 14, // Max zoom to cluster points on
clusterRadius: 50, // Radius of each cluster when clustering points (defaults to 50)
clusterProperties: {
status: ['max', ['get', 'status']]
}
});
Этот фрагмент в точности похож на пример кластеров со страницы mapbox, просто заменив данные моей статической копией из 2 элементов и добавив clusterProperties
.
.ошибка проверки (немного искажена из минимизированной версии mapbox-gl):
Error: sources.earthquakes: unknown property "clusterProperties"
at Object.Jr [as emitValidationErrors] (modules.js?hash=34588b9e7240c1a9b3fd2f8685e299d9dbbb40d9:504146)
at De (modules.js?hash=34588b9e7240c1a9b3fd2f8685e299d9dbbb40d9:504150)
at i._validate (modules.js?hash=34588b9e7240c1a9b3fd2f8685e299d9dbbb40d9:504150)
Что не так с этим clusterProperties
использованием?Казалось бы, он просто отказывается проверять это свойство.Обратите внимание, что карта работает нормально (без агрегированного свойства status
, конечно), если я прокомментирую последние 3 строки, которые ее установили.