By default, LuciadRIA declutters labels, which means that it doesn’t paint labels on top of other labels. It also declutters labels styled through Symbology Encoding definitions, but you can use a vendor option named conflictResolution to turn off decluttering for individual TextSymbolizers.

For an example, see the TextSymbolizer definition below. It specifies the conflictResolution vendor option with the value false. LuciadRIA interprets the vendor option, and disables label decluttering for all labels styled with this TextSymbolizer as a result.

<TextSymbolizer>
  <Label>myLabel</Label>
  <Font>
    <SvgParameter name="font-family">Arial</SvgParameter>
    <SvgParameter name="font-size">16</SvgParameter>
  </Font>
  <Halo>
    <Radius>1</Radius>
    <Fill>
      <SvgParameter name="fill">#000000</SvgParameter>
    </Fill>
  </Halo>
  <Fill>
    <SvgParameter name="fill">#ffffff</SvgParameter>
  </Fill>
  <VendorOption name="conflictResolution">false</VendorOption>
</TextSymbolizer>

Additionally, you can alter the default value for this vendor option in the SEPainterCreateOptions of the SEPainterFactory, when creating your Symbology Encoding-based painter. Setting this default to false disables decluttering entirely, for all labels painted by that painter. Individual TextSymbolizers can still override this default and re-enable decluttering by declaring the vendor option, as demonstrated above.