[Qgis-user] Rendering shared exterior boundaries of adjacent polygon features

Andreas Neumann a.neumann at carto.net
Wed Jun 19 22:05:34 PDT 2024



Hi Tim,

Are you looking for the "Draw line only inside polygon" feature 
described at 
http://nyalldawson.net/2014/01/qgis-two-neat-features-in-2-2/ ?

In that case you would probably have two symbol levels:

- one for the line pattern fill (cross-hatched)

- a second one on top of the other one drawing an "Outline:simple line" 
on top of it using the "Draw line only inside polygon" checkbox.

This is only briefly described at 
https://docs.qgis.org/3.34/en/docs/user_manual/style_library/symbol_selector.html

Quote:

_Outline: simple line: uses a simple line symbol layer to represent the 
polygon boundary (Rings) which can be the interior rings only, the 
exterior ring only or all the rings). The Draw line only inside polygon 
option displays the polygon borders inside the polygon and can be useful 
to clearly represent adjacent polygon boundaries. The other settings for 
the outline simple line are the same as for simple line symbols._

But perhaps I am totally misunderstanding your request ...

Greetings,

Andreas

On 2024-06-20 03:26, Tim Malloy via QGIS-User wrote:

> Fellow QGIS Users -
> 
> I'm trying to determine if its possible to have QGIS render the 
> exterior boundary of polygon features only once when that boundary is 
> shared with an adjacent feature (don't render overlapping exterior 
> boundaries for both polygon features).  The data I'm working with is a 
> county parcels layer and the symbology I'm using for this layer is a 
> cross hatched line fill with a separate component for the outline of 
> the polygons.  I've tried a couple of expressions (examples below) 
> including one geometry generator and one data defined override for the 
> stroke width of the boundary line but none of them achieves my 
> objective.  I'm using QGIS 3.34.7 and my coding skills are limited.  I 
> feel like I've seen this issue covered somewhere but have been unable 
> to find a solution after extensive online exploration.
> 
> Method #1:  "boundary( difference( $geometry, aggregate( 'union', 
> 'intersects', $geometry, other_layer := @layer)))"  This expression was 
> used on the outline component of the symbology described above.
> 
> Method #2:  "CASE WHEN intersects( $geometry, geom_to_wkt( boundary( 
> $geometry ))) THEN 0  ELSE 1 END"  Here I switched to using an 
> expression on the stroke width of a simple fill, but I got an error 
> message saying "Cannot convert to geometry".
> 
> Any input would be greatly appreciated.
> 
> Tim
> 
> _______________________________________________
> QGIS-User mailing list
> QGIS-User at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20240620/4d4f1087/attachment.htm>


More information about the QGIS-User mailing list