javascript - 如何使用 Mapbox GL JS 和对象制作等值线图?

标签 javascript mapbox mapbox-gl-js choropleth

我正在努力寻找正确的信息,以便使用 mapbox 创建等值线图。他们的例子非常模糊。

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

        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

关于javascript - 如何使用 Mapbox GL JS 和对象制作等值线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62027536/

相关文章:

javascript - 使用不同的 json 数据填充不同的选择框

javascript - Mapbox GL JS 更新图像叠加源

mapbox - 离线使用 Mapbox GL

javascript - 如何在 Rails Turbolink 中正确使用 jQuery $().load(url)?

javascript - MapBox:为点分配图标

javascript - 将 typescript 字符串文字类型转换为字符串数组

javascript - 使 onKeyDown 触发 HTML 按钮的 onClick 事件

javascript - RhinoJS 是否支持 websockets API?

reactjs - react-map-gl <Map> 在调整窗口大小之前不是全屏

angular - 如何将 mapbox-gl-draw 导入 Angular 2/4?