Tile column en tile row op basis van coordinaten(x, y, z)

Beste Geoforum,

Ik ben bezig met het maken van een OpenLayers component voor mijn applicatie en voor de tiles gebruik ik PDOK. Dit is de service die ik gebruik: https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/standaard/EPSG:28992/{z}/{x}/{y}.png

Dit deed ik op basis van de x, y, z coordinaten. Ik nam een punt op Scheveningen(de pier) om dit te testen, waarvoor de coordinaten op een EPSG: 28992, het volgende waren: (x, y, z) = (79334, 459204, 14).

Dit komt dan niet overeen met de daadwerkelijke tile:
Tilematrix = 14, Tilecolumn = 6784, tilerow = 8262.

Is er een bepaalde formule die ik door het oog heb gezien om tilecolumns en tilerows te berekenen?

Bij voorbaat dank.

Is dit wat je zoekt?

https://geoforum.nl/t/vertalen-tiling-xyz-tiles-naar-rijksdriehoek-coordinaten/5088/2

Of heb je de formule de andere kant op nodig?

Ha Jochem,

Dankjewel voor je snelle reactie.

Ik zoek inderdaad een formule om dit de andere kant op toe te rekenen.
Dus de inputs zijn dan: Zoom level, RD(EPSG: 28992) x en y coordinaten.

Zou ik dit zo kunnen berekenen ongeveer:

Input:

Z = 14
x = 79334
y = 459204

Formules:

t=(903401.92-22598.08)*0.5^Z
tileRow X = (x + 285401,92) / t
tileColumn Y = (y - 22598,08) / t

Bij voorbaat dank,
Kostas

Ja, ziet er goed uit. Werkt dat?

PS: Wel even de komma’s in punten veranderen als je de code copy-paste.

Het lijkt er op dat er een fout zit in de formule voor Y van post 5088 waar ik naar verwees. Ik denk dat het dit moet zijn:

y = -(Y+1)*t+903401.92

De formule de andere kant op wordt dan:

Y = floor((903401.92-y)/t)

Laat je horen of dat werkt?

Ha,

ik heb de volgende gegevens uitgeprobeerd:

RD coordinaten

Te vinden:

TileCol: 3391

TileRow: 4130

Gegevens RD coordinaten:

zoom: 13

x: 79317

y: 459214

Dit is wat hoe ik eruit kwam:

Vraagje: Waarom wil je zelf de tilecolumns en rowcolumns berekenen op basis van RD?

Ik laat Openlayers dat zelf doen, enige wat daarvoor nodig is, is een goede definitie van de RD projectie en de resolutie.

2 likes

Dat was inderdaad een blunder van mij. Ik heb het inmiddels gecorrigeerd. Dank!

Volgens mij moet je niet round gebruiken maar floor, of je moet -0.5 gebruiken in plaats van -1.

Ik heb de verbeterde formules beide kanten op toegevoegd aan de eerdere post (5088) zodat het daar allemaal netjes bij elkaar staat.

Gewoon uit interesse, wat is dit voor “rekenmachientje”? Ziet er cool uit!

Ha, Raymond.

De rekenmachine is online op https://www.desmos.com/scientific te vinden.

Met vriendelijke groet

3 likes

Dit topic is 180 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.