use of com.baremaps.tile.Tile in project baremaps by baremaps.
the class Export method call.
@Override
public Integer call() throws TileStoreException, BlobStoreException, IOException {
ObjectMapper mapper = defaultObjectMapper();
DataSource datasource = PostgresUtils.datasource(database);
BlobStore blobStore = options.blobStore();
TileJSON source = mapper.readValue(blobStore.get(this.tileset).getInputStream(), TileJSON.class);
TileStore tileSource = sourceTileStore(source, datasource);
TileStore tileTarget = targetTileStore(source, blobStore);
Stream<Tile> stream;
if (tiles == null) {
Envelope envelope = new Envelope(source.getBounds().get(0), source.getBounds().get(2), source.getBounds().get(1), source.getBounds().get(3));
long count = Tile.count(envelope, source.getMinzoom(), source.getMaxzoom());
stream = StreamUtils.stream(Tile.iterator(envelope, source.getMinzoom(), source.getMaxzoom())).peek(new StreamProgress<>(count, 5000));
} else {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(blobStore.get(tiles).getInputStream()))) {
stream = reader.lines().flatMap(line -> {
String[] array = line.split(",");
int x = Integer.parseInt(array[0]);
int y = Integer.parseInt(array[1]);
int z = Integer.parseInt(array[2]);
Tile tile = new Tile(x, y, z);
return StreamUtils.stream(Tile.iterator(tile.envelope(), source.getMinzoom(), source.getMaxzoom()));
});
}
}
logger.info("Exporting tiles");
StreamUtils.batch(stream, 10).filter(new TileBatchPredicate(batchArraySize, batchArrayIndex)).forEach(new TileChannel(tileSource, tileTarget));
logger.info("Done");
return 0;
}
use of com.baremaps.tile.Tile in project baremaps by baremaps.
the class PostgresTileStoreTest method sameQueries.
@Test
void sameQueries() {
List<PostgresQuery> queries = Arrays.asList(new PostgresQuery("a", 0, 20, "SELECT id, tags, geom FROM table"), new PostgresQuery("b", 0, 20, "SELECT id, tags, geom FROM table"));
PostgresTileStore tileStore = new PostgresTileStore(null, queries);
String query = tileStore.withQuery(new Tile(0, 0, 10));
assertEquals("with ha14cb45b as (select * from table where ((true) OR (true)) and st_intersects(geom, st_tileenvelope(10, 0, 0))) select st_asmvt(target, 'a', 4096, 'geom', 'id') from (select id as id, (tags || jsonb_build_object('geometry', lower(replace(st_geometrytype(geom), 'ST_', '')))) as tags, st_asmvtgeom(geom, st_tileenvelope(10, 0, 0), 4096, 256, true) as geom from ha14cb45b ) as target union all select st_asmvt(target, 'b', 4096, 'geom', 'id') from (select id as id, (tags || jsonb_build_object('geometry', lower(replace(st_geometrytype(geom), 'ST_', '')))) as tags, st_asmvtgeom(geom, st_tileenvelope(10, 0, 0), 4096, 256, true) as geom from ha14cb45b ) as target", query);
}
Aggregations