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.
Åbn "Plugins" i den øverste menu bar, vælg "Python-konsol", og tryk "Vis Editor"
Indsæt Python scriptet, der kan findes i bunden af denne side, og tryk på "Kør Script"
Åbn attribut tabellen for laget og vælg "Åbn feltberegner"
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
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"
Beregning af tekstretning i GON
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)