如何使用 Mapbox GL JS 和对象制作分区统计图?



我正在努力找到正确的信息,以便使用mapbox创建分区统计图。他们的例子非常模糊。

我目前有一个显示英国所有县的多边形的geojson。我使用 map.addLayer 将其添加到地图中,但目前,整个地图的颜色相同:

map.addLayer({
"id": 'counties',
"type": "fill",
"source": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": counties
}
},
"layout": {},
"paint": {
"fill-color": fill,
"fill-opacity": 0.8
}
});

counties 是 geojson 文件,其中还包括一个名为"County"的属性。此外,我还返回了一个对象,它分别返回键、县的值对以及它在我的数据中出现的次数:

{
"Bristol": 2,
"Cheshire": 1,
"City and County of the City of London": 14,
"City of Aberdeen": 1,
"City of Edinburgh": 3
}

如何使用对象中的数据创建分区统计图,以返回图层的不同阴影/颜色(例如,柴郡等县的颜色较浅,因为值为 1,但伦敦市和县的颜色较深,因为值为 14?

你的geojson是如何构建的?

最简单的方法是让要素具有一个名为"频率"的属性。然后,您可以使用Mapbox GL JS数据驱动的样式,如下所示:

'fill-color': {
property: 'frequency',
stops: [[2, '#fff'], [5, '#f00']]
}

通过Mapbox查看此帖子:https://blog.mapbox.com/data-driven-styling-for-fill-layers-in-mapbox-gl-js-80bb5292af4e

最简单的方法是使用 mapbox-choropleth 库。

最新更新