在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
相关产品推荐
相关产品推荐

