Jag la lite tid i helgen på att komma fram till en QGIS stil som kunde användas för större ytor som ”knyter ihop” områden genom att vara ”öppna” i en specifik riktning, men vara avgränsad i andra.
Tänk er ett större vattendrag där flöde in och ut skall vara öppna, medan strandkanterna längs dessa skall visas tydligt.
Självklart kan man göra detta med kombinationer av polygoner och linjer, men det vore användbart att skapa dessa när man ritar dem.

Det tog många iterationer innan jag kom så långt som bilden ovan demonstrerar, och även om det går att ta det några steg till så finns det en gräns för när det blir för komplext och prestanda i renderingen blir lidande.
Stilen ovan jämför närliggande segment med varandra och om vinkelskillnaden mellan dem är mindre än ett gränsvärde (standard 45 grader) så skapas linjen. Om det är mer än gränsvärdet så ritas ingen linje ut. Med andra ord. Om det finns ett linjesegment som i båda ändar har en vinkel till anslutande segment som är större än gränsvärdet, så ritas linjen inte ut för denna.
Vill man ha en kantlinje även för vissa skarpa hörn, så lägger man helt enkelt till en extra brytpunkt så att det finns två närliggande segment med liten vinkelskillnad.

Stilen är enkel att anpassa då den i princip består av en fyllningspolygon och en kantlinje. Färg och stil på dessa kan justeras efter behov. I geometrigeneratorn så kan toleransvinkeln justeras, men i övrigt så skall man nog inte peta i koden för mycket om man inte vet vad man gör.
På grund av att stilen inte skall bli allt för komplex och ta mycket kraft vid renderingen så skapas exempelvis dubbla linjesegment på flera platser. Detta syns om man sätter transparens på linjerna, eller försöker tillämpa ytterligare geometrigeneratorer på linjerna.

Stilen finns att hämta via QGIS Hub (länk) och om man har QGIS Hub Explorer plug-in installerat så går det att hämta Open Polygon stilen direkt inifrån QGIS.
Har länge letat efter detta.
Tack!