diff --git a/modules/carto/src/layers/vector-tile-layer.ts b/modules/carto/src/layers/vector-tile-layer.ts index 3bcf0db866d..6e99299e7d3 100644 --- a/modules/carto/src/layers/vector-tile-layer.ts +++ b/modules/carto/src/layers/vector-tile-layer.ts @@ -134,19 +134,30 @@ export default class VectorTileLayer< const tileBbox = props.tile.bbox as any; const {west, south, east, north} = tileBbox; + const extensions = [new ClipExtension(), ...(props.extensions || [])]; const clipProps = { - extensions: [new ClipExtension(), ...(props.extensions || [])], clipBounds: [west, south, east, north] }; + const applyClipExtensionToSublayerProps = (subLayerId: string) => { + return { + [subLayerId]: { + ...clipProps, + ...props?._subLayerProps?.[subLayerId], + extensions: [...extensions, ...(props?._subLayerProps?.[subLayerId]?.extensions || [])] + } + }; + }; + const subLayerProps = { ...props, autoHighlight: false, // Do not perform clipping on points (#9059) _subLayerProps: { - 'polygons-fill': clipProps, - 'polygons-stroke': clipProps, - linestrings: clipProps + ...props._subLayerProps, + ...applyClipExtensionToSublayerProps('polygons-fill'), + ...applyClipExtensionToSublayerProps('polygons-stroke'), + ...applyClipExtensionToSublayerProps('linestrings') } };