clip layer stops removing a Mapbox Standard building in v3.18 that it removed in v3.12 (now rendered as fill-extrusion instead of model)
mapbox-gl-js version
Regression in v3.18.1 (please confirm still present on latest). Works correctly in v3.12.0.
Browser and version
Chrome 141 / macOS 15
Expected behavior
All 3D buildings inside the clip polygon are removed - as happens in v3.12.0, and as described in Mapbox's own "clip layer to remove features" guidance for Standard.
Actual behavior
In v3.18.1 one specific building (by KANAALWEG) is NOT removed, while every neighbouring building inside the same polygon is. It disappears with setConfigProperty('basemap','show3dObjects',false), confirming it is Standard basemap 3D - but the clip layer (model/symbol) does not remove it. This indicates the building is now rendered as fill-extrusion/building rather than model (as it was in v3.12.0), and clip-layer-types only accepts 'model'|'symbol' (confirmed: the runtime hard-rejects 'fill-extrusion'/'building'), so there is no way to clip it.
Possible resolutions: (1) correct the data so this building renders as a model like its neighbours, and/or (2) allow clip-layer-types to target fill-extrusion/building.
clip does not remove one Standard building (v3.18+)Link to the demonstration
https://codepen.io/baczkowskij/pen/PwpbWxB
Steps to trigger the unexpected behavior
- Load Mapbox Standard (mapbox://styles/mapbox/standard), centered on the Utrecht Merwedekanaal depot ~[5.1088, 52.0751], pitch 60, zoom ~17.5.
- Add a
cliplayer withclip-layer-types: ['model','symbol']over a polygon covering the depot site (see demo). - Observe the 3D buildings inside the polygon.
- Load the exact same style + clip in mapbox-gl-js v3.12.0, then in v3.18.1, and compare.
Relevant log output
Source: mapbox/mapbox-gl-js