Skip to content

Commit 1dd2173

Browse files
authored
align tile buffer for PGIS_TILES (#433)
1 parent 8efbe00 commit 1dd2173

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

xtraplatform-tiles/src/main/java/de/ii/xtraplatform/tiles/app/FeatureEncoderMVT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import de.ii.xtraplatform.features.domain.transform.FeatureEncoderSfFlat;
1313
import de.ii.xtraplatform.features.domain.transform.FeatureSfFlat;
1414
import de.ii.xtraplatform.tiles.domain.LevelTransformation;
15+
import de.ii.xtraplatform.tiles.domain.TileBuilder;
1516
import de.ii.xtraplatform.tiles.domain.TileCoordinates;
1617
import de.ii.xtraplatform.tiles.domain.TileGenerationContext;
1718
import de.ii.xtraplatform.tiles.domain.TileGenerationOptions;
@@ -70,7 +71,7 @@ public FeatureEncoderMVT(TileGenerationContext encodingContext) {
7071
this.geometryFactoryWorld = new GeometryFactory();
7172

7273
final int size = tile.getTileMatrixSet().getTileSize();
73-
final int buffer = 8;
74+
final int buffer = TileBuilder.BUFFER_SIZE_FORMAL;
7475
CoordinateXY[] coords = new CoordinateXY[5];
7576
coords[0] = new CoordinateXY(-buffer, size + buffer);
7677
coords[1] = new CoordinateXY(size + buffer, size + buffer);

xtraplatform-tiles/src/main/java/de/ii/xtraplatform/tiles/app/TileBuilderPgisAsMvt.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,12 +290,19 @@ private String queryToSql(
290290
.map(FeatureSchema::getName);
291291

292292
String filter = filtersToSql(providerId, tileset, schema, tms.getId(), level);
293+
int buffer = (tms.getTileExtent() / tms.getTileSize()) * TileBuilder.BUFFER_SIZE_FORMAL;
293294

294295
String bounds = "bounds AS (SELECT %1$s AS geom, %2$s::box2d AS b2d)";
295296
String mvtgeom =
296297
String.format(
297-
"mvtgeom AS (SELECT ST_AsMVTGeom(ST_Transform(A.%1$s, %%3$s), bounds.b2d, %6$d, 8) AS geom, %2$s FROM %3$s A, bounds WHERE (%5$s AND ST_Intersects(A.%1$s, ST_Transform(bounds.geom, %4$s))))",
298-
geomColumn, attrColumns, table, nativeCrs.getCode(), filter, tms.getTileExtent());
298+
"mvtgeom AS (SELECT ST_AsMVTGeom(ST_Transform(A.%1$s, %%3$s), bounds.b2d, %6$d, %7$d) AS geom, %2$s FROM %3$s A, bounds WHERE (%5$s AND ST_Intersects(A.%1$s, ST_Transform(bounds.geom, %4$s))))",
299+
geomColumn,
300+
attrColumns,
301+
table,
302+
nativeCrs.getCode(),
303+
filter,
304+
tms.getTileExtent(),
305+
buffer);
299306

300307
String template =
301308
String.format(

xtraplatform-tiles/src/main/java/de/ii/xtraplatform/tiles/domain/TileBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
@AutoMultiBind
2020
public interface TileBuilder {
2121

22+
// buffer in relation to the "formal" tile size (256 for WMQ)
23+
int BUFFER_SIZE_FORMAL = 8;
24+
2225
int getPriority();
2326

2427
boolean isApplicable(String featureProviderId);

0 commit comments

Comments
 (0)