From 67fdc4228825921b6b63d918462372eb5dd76aaa Mon Sep 17 00:00:00 2001 From: naulan-chrzaszcz Date: Thu, 24 Sep 2026 14:31:06 +0200 Subject: [PATCH] feat(provider): XYZ Tiles provider --- examples/processes/mapterhorn.yaml | 34 +++++ pom.xml | 6 + .../java/fr/ign/voxatile/core/Voxatile.java | 2 + .../core/inputs/FloatBufferedImageMatrix.java | 40 ++++++ .../core/inputs/XYZTilesProvider.java | 121 ++++++++++++++++++ .../decoders/TerrariumFloatDecoder.java | 17 +++ .../core/models/FloatMatrixModel.java | 8 +- .../providers/XYZTilesProviderParams.java | 59 +++++++++ 8 files changed, 283 insertions(+), 4 deletions(-) create mode 100644 examples/processes/mapterhorn.yaml create mode 100644 src/main/java/fr/ign/voxatile/core/inputs/FloatBufferedImageMatrix.java create mode 100644 src/main/java/fr/ign/voxatile/core/inputs/XYZTilesProvider.java create mode 100644 src/main/java/fr/ign/voxatile/core/inputs/decoders/TerrariumFloatDecoder.java create mode 100644 src/main/java/fr/ign/voxatile/core/parameters/providers/XYZTilesProviderParams.java diff --git a/examples/processes/mapterhorn.yaml b/examples/processes/mapterhorn.yaml new file mode 100644 index 000000000..9a44d89c7 --- /dev/null +++ b/examples/processes/mapterhorn.yaml @@ -0,0 +1,34 @@ +heightmaps: + ground: + default: 0 + +forEachTile: + + altitude: + type: sequence + do: + - type: fetchData + modelType: altitude + provider: + type: xyz + url: https://tiles.mapterhorn.com/{z}/{x}/{y}.webp + zoom: 16 + - type: populateHeightmap + models: + type: altitude + heightmap: ground + - type: setSpawn + heightmap: + sum: [ground, 1] + x: 0 + y: 0 + - type: renderHeightmap + at: ground + place: + structure: + - place: *voxel-grass + at: [0, 0, 0] + - place: *voxel-dirt + at: [0, 0, -3..-1] + - place: *voxel-stone + at: [0, 0, -20..-4] diff --git a/pom.xml b/pom.xml index b31f1d2cf..eb32e66a5 100644 --- a/pom.xml +++ b/pom.xml @@ -200,6 +200,12 @@ osm4j-geometry ${osm4j.version} + + + com.twelvemonkeys.imageio + imageio-webp + 3.9.4 +