I DAWA's Adgangsadresse API har husnummerretning været tilgængelig i enheden gon (i feltet "tekstretning"), men i Datafordeleren vil husnummerretning kun være tilgængelig i WKT (i feltet "husnummerretning" i entiteten "Husnummer").

Det er dog muligt at konvertere WKT til gon med Python kode, og dette kan gøre direkte i et GIS-program.
I QGIS, kan der under labels anvendes en gon-retning, og man kan derfor efter konverteringen få husnummertekst labels til at visuelt indstille sig i den korrekte retning.


Vejledning

Denne vejledning henvender sig til GIS-programmet QGIS.

Det antages, at du allerede har åbnet dit projekt og har indlæst et lag med DAR_Husnummer. Det kan fx være en CSV-fil downloadet fra https://datafordeler.dk/dataoversigt/ via DAR Fildownload.


  1. Åbn "Plugins" i den øverste menu bar, vælg "Python-konsol", og tryk "Vis Editor"



  2. Indsæt Python scriptet, der kan findes i bunden af denne side, og tryk på "Kør Script"



  3. Åbn attribut tabellen for laget og vælg "Åbn feltberegner"



  4. Giv det nye felt et navn, vælg "Decimaltal (double)" som feltets type og tast "tekstretning_gon("husnummerretning")". Tryk "OK" for at lave det nye felt. Du har nu en ny kolonne i din attribut tabel med husnummerretning i gon



  5. Det er nu muligt at anvende feltet med husnummerretning i gon til at indstille retningen på husnummertekst, hvis feltet bruges som label. Åbn "Egenskaber" for laget, og tryk på fanen "Labels"




from qgis.core import *
import math

@qgsfunction(args='auto', group='Custom')
def tekstretning_gon(point_wkt, feature, parent):
    """
    Calculate direction in gons from a POINT Z WKT string.
    """
    try:
        # Use the value directly (NOT feature[...])
        point_str = point_wkt

        # Remove WKT text
        point_str = point_str.replace("POINT Z(", "").replace(")", "")

        # Split coordinates
        coords = point_str.split()

        x = float(coords[0])
        y = float(coords[1])

        # Direction calculation
        angle_radians = -math.atan2(y, x)
        angle_degrees = math.degrees(angle_radians)
        adjusted_degrees = angle_degrees + 180.0
        result_gons = adjusted_degrees * 10.0 / 9.0

        return result_gons

    except Exception:
        return None

QgsExpression.registerFunction(tekstretning_gon)