Is het mogelijk om in QGIS labels bij puntobjecten te plaatsen waar de Lat en Lon worden getoond, terwijl de punten uit een projectie (RD) komen? Met QGIS kun je alles, dus natuurlijk kan dat. Maar hoe?

Om te beginnen heb je een laag nodig met een aantal punten in een project dat is opgezet in EPSG:28992. Dit kun je eenvoudig zelf maken door een nieuwe vectorlaag toe te voegen aan je project en daar enkele locaties op aangeven. Bij de labeleigenschappen kun je een expressie invoeren.

Als de label moet verwijzen naar de geometrie van het punt dan gebruik je dit:

$geometry

Maar als je naar de afzonderlijke X en Y waarden wilt kijken dan gebruik je deze:

$x 
$y

Wil je ze netjes afronden op 2 decimalen en omzetten naar tekst dan kun je dit gebruiken:

replace(format_number($x,2,'us'),',','') + ','
 + replace(format_number($y,2,'us'),',','')

In het kort gezegd: maak de X-waarde op met 2 decimalen conform de US schrijfwijze, vervang de komma (want die wordt gebruikt als duizendtal-teken), voeg samen met de Y-waarde die je op gelijke wijze omzet. De label die getoond wordt geeft dan dit in RD-coördinaten:

241694.92,486138.60

Dit is nog steeds geen Lat/Lon. Er zijn nu twee manieren om dit voor elkaar te krijgen.

Methode 1: transformatie

Gebruik de volgende expressie:

format_number(y(transform($geometry,@layer_crs,'EPSG:4326')),4,'us')
 + ',' + format_number(x(transform($geometry,@layer_crs,'EPSG:4326')),4,'us')

Hier staat dat je de geometrie van het huidige punt transformeert van de CRS van de laag naar WGS84, daar de Y-waarde van neemt en die weergeeft met 4 decimalen, en samenvoegt met de X-waarde die je op dezelfde wijze transformeert. Het aantal decimalen is uiteraard van belang, nog meer dan bij coördinaten.

Methode 2: Layer CRS

De tweede methode is om de Layer waar je de puntobjecten op plaatst, van een afwijkende CRS te voorzien. De project CRS kan prima op EPSG:28992 staan terwijl de laag waar de punten op staan, ingesteld kan zijn op EPSG:4326.

De labels kun je dan voorzien van dezelfde expressie als bij het tonen van de X en Y-waarden van coördinaten:

replace(format_number($x,2,'us'),',','')
 + ',' + replace(format_number($y,2,'us'),',','')

Deze hoeven niet meer getransformeerd te worden.