Vertalen tiling (XYZ tiles) naar Rijksdriehoek coordinaten

Hallo,

Ik ben benieuwd hoe ik XYZ (of ZXY) tiles kan converten naar X en Y Rijksdriehoek coordinaten (bijvoorbeeld de min x en min y RD coordinaten van een tegel).

Hier een tile: http://geodata.nationaalgeoregister.nl/tms/1.0.0/brtachtergrondkaart/13/3727/4280.png

Op internet heb ik verschillende topics gevonden met formules om de tile index op een bepaald zoom level te converten naar een geolocatie (lat, long). Maar, deze formules werken niet voor de tiling versie gebruikt in PDOK.

Ook staat het niet in het richtlijnen document:
https://www.geonovum.nl/uploads/standards/downloads/nederlandse_richtlijn_tiling_-_versie_1.1.pdf

Input ZXY van een tile:

Z=13
X=3727
Y=4280

Formules:

t=(903401.92-22598.08)*0.5^Z  '(tegelgrootte in meters)'
x=X*t-285401.92
y=Y*t+22598.08

Output RD-coördinaten in meters van linkeronderhoek van de tile:

x=115325.12
y=482783.68

 

PS: De getallen in bovenstaande formules komen uit het document over de richtlijn:

903401.92 = y (links)boven bij zoom-niv.0
22598.08 = y (rechts)onder bij zoom-niv.0
-285401.92 = x links(boven) bij zoom-niv.0
5 likes

Bedankt voor de reactie. Dit is het!

1 like

Naar aanleiding van een vraag over de formule voor de andere kant op, constateerde ik dat er een fout in bovenstaande formule voor de y-coördinaat zit. De juiste formules beide kanten op staan hieronder.

Van ZXY van een tile naar xy-coördinaten in RD:

t = (903401.92-22598.08)*0.5^Z  'tegelgrootte in meters'
x = X*t-285401.92       'x-coördinaat in meters van de linkeronderhoek van de tile'
y = -(Y+1)*t+903401.92  'y-coördinaat in meters van de linkeronderhoek van de tile'

 
De andere kant op, van xy-coördinaten in RD naar XY-index van een tile bij zoomniveau Z:

t = (903401.92-22598.08)*0.5^Z  'tegelgrootte in meters'
X = floor((285401.92+x)/t)  'rij-index van de tile'       
Y = floor((903401.92-y)/t)  'kolomindex van de tile'

 
Waar bij de getallen in bovenstaande formules uit het document over de richtlijn komen:

 903401.92  'y (links)boven bij zoomniveau 0'
  22598.08  'y (rechts)onder bij zoomniveau 0'
-285401.92  'x links(boven) bij zoomniveau 0'
1 like