You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在React中调整Mapbox fill-extrusion高度(无需修改GeoJSON)

Mapbox填充拉伸多边形高度放大实现(无需修改GeoJSON)

你可以直接使用Mapbox的Style Expression乘法运算实现需求,不需要修改原始GeoJSON数据,也不用分箱插值。核心写法是利用["*", ["get", "属性字段"], 放大倍数]这类表达式语法。

在React项目的Mapbox图层配置中,直接将fill-extrusion-height设置为这个乘法表达式即可:

// 示例:添加填充拉伸多边形图层
map.addLayer({
  id: 'fill-extrusion-layer',
  type: 'fill-extrusion',
  source: 'your-geojson-source', // 你的GeoJSON数据源ID
  paint: {
    'fill-extrusion-color': '#888',
    // 直接对属性值做乘法运算,放大高度
    'fill-extrusion-height': ["*", ["get", "hh_density_2042"], 20],
    'fill-extrusion-opacity': 0.8
  }
});

如果担心部分要素缺失hh_density_2042属性导致高度异常,可以用coalesce表达式设置默认值,避免出现NaN:

'fill-extrusion-height': ["*", ["coalesce", ["get", "hh_density_2042"], 0], 20]

这个表达式逻辑很直接:通过["get", "hh_density_2042"]读取GeoJSON中的属性值,再用*运算符乘以20,最终结果直接作为多边形的拉伸高度。

内容的提问来源于stack exchange,提问作者CarlaVdB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:05:15