Search in sources :

Example 1 with DataStoreConsumer

use of com.baremaps.osm.store.DataStoreConsumer in project baremaps by baremaps.

the class ImportService method call.

@Override
public Void call() throws Exception {
    Consumer<Block> cacheBlock = new DataStoreConsumer(coordinates, references);
    Consumer<Entity> createGeometry = new CreateGeometryConsumer(coordinates, references);
    Consumer<Entity> reprojectGeometry = new ReprojectEntityConsumer(4326, srid);
    Consumer<Block> prepareGeometries = new BlockEntityConsumer(createGeometry.andThen(reprojectGeometry));
    Function<Block, Block> prepareBlock = consumeThenReturn(cacheBlock.andThen(prepareGeometries));
    Consumer<Block> saveBlock = new SaveBlockConsumer(headerRepository, nodeRepository, wayRepository, relationRepository);
    Blob blob = blobStore.get(uri);
    ProgressLogger progressLogger = new ProgressLogger(blob.getContentLength(), 5000);
    try (InputStream inputStream = new InputStreamProgress(blob.getInputStream(), progressLogger)) {
        batch(new OsmPbfParser().blocks(inputStream).map(prepareBlock)).forEach(saveBlock);
    }
    return null;
}
Also used : Entity(com.baremaps.osm.domain.Entity) CreateGeometryConsumer(com.baremaps.osm.geometry.CreateGeometryConsumer) Blob(com.baremaps.blob.Blob) InputStream(java.io.InputStream) BlockEntityConsumer(com.baremaps.osm.function.BlockEntityConsumer) InputStreamProgress(com.baremaps.osm.progress.InputStreamProgress) ProgressLogger(com.baremaps.osm.progress.ProgressLogger) ReprojectEntityConsumer(com.baremaps.osm.geometry.ReprojectEntityConsumer) Block(com.baremaps.osm.domain.Block) DataStoreConsumer(com.baremaps.osm.store.DataStoreConsumer) OsmPbfParser(com.baremaps.osm.pbf.OsmPbfParser)

Aggregations

Blob (com.baremaps.blob.Blob)1 Block (com.baremaps.osm.domain.Block)1 Entity (com.baremaps.osm.domain.Entity)1 BlockEntityConsumer (com.baremaps.osm.function.BlockEntityConsumer)1 CreateGeometryConsumer (com.baremaps.osm.geometry.CreateGeometryConsumer)1 ReprojectEntityConsumer (com.baremaps.osm.geometry.ReprojectEntityConsumer)1 OsmPbfParser (com.baremaps.osm.pbf.OsmPbfParser)1 InputStreamProgress (com.baremaps.osm.progress.InputStreamProgress)1 ProgressLogger (com.baremaps.osm.progress.ProgressLogger)1 DataStoreConsumer (com.baremaps.osm.store.DataStoreConsumer)1 InputStream (java.io.InputStream)1