This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch simplify-geometries
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git


The following commit(s) were added to refs/heads/simplify-geometries by this 
push:
     new dbf820cd Remove duplicated code
dbf820cd is described below

commit dbf820cdde383e0b45781184d732a885bda4a150
Author: Bertil Chapuis <[email protected]>
AuthorDate: Thu Feb 2 10:33:48 2023 +0100

    Remove duplicated code
---
 .../workflow/tasks/ImportOpenStreetMap.java        | 39 +++++++++++-----------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java
index 28831523..a60f6ee2 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java
@@ -12,11 +12,9 @@
 
 package org.apache.baremaps.workflow.tasks;
 
-import static org.apache.baremaps.stream.ConsumerUtils.consumeThenReturn;
 import static org.apache.baremaps.stream.StreamUtils.batch;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -37,6 +35,7 @@ import org.apache.baremaps.openstreetmap.model.Node;
 import org.apache.baremaps.openstreetmap.model.Relation;
 import org.apache.baremaps.openstreetmap.model.Way;
 import org.apache.baremaps.openstreetmap.pbf.PbfBlockReader;
+import org.apache.baremaps.stream.StreamUtils;
 import org.apache.baremaps.workflow.Task;
 import org.apache.baremaps.workflow.WorkflowContext;
 import org.locationtech.jts.geom.Coordinate;
@@ -129,24 +128,24 @@ public record ImportOpenStreetMap(Path file, String 
database, Integer databaseSr
             Repository<Long, Way> wayRepository,
             Repository<Long, Relation> relationRepository,
             Integer databaseSrid) throws IOException {
-        // Initialize and chain the entity handlers
-        var coordinateMapBuilder = new CoordinateMapBuilder(coordinateMap);
-        var referenceMapBuilder = new ReferenceMapBuilder(referenceMap);
-        var entityGeometryBuilder = new EntityGeometryBuilder(coordinateMap, 
referenceMap);
-        var entityProjectionTransformer = new 
EntityProjectionTransformer(4326, databaseSrid);
-        var entityHandler = coordinateMapBuilder
-                .andThen(referenceMapBuilder)
-                .andThen(entityGeometryBuilder)
-                .andThen(entityProjectionTransformer);
-
-        // Initialize the block mapper
-        var blockMapper = consumeThenReturn(new 
BlockEntitiesHandler(entityHandler));
-        var blockImporter =
-                new BlockImporter(headerRepository, nodeRepository, 
wayRepository, relationRepository);
-
-        // Process the blocks
-        try (InputStream inputStream = Files.newInputStream(path)) {
-            batch(new 
PbfBlockReader().stream(inputStream).map(blockMapper)).forEach(blockImporter);
+
+        // configure the block reader
+        var reader = new PbfBlockReader()
+                .geometries(true)
+                .projection(databaseSrid)
+                .coordinateMap(coordinateMap)
+                .referenceMap(referenceMap);
+
+        // configure the block importer
+        var importer = new BlockImporter(
+                headerRepository,
+                nodeRepository,
+                wayRepository,
+                relationRepository);
+
+        // Stream and process the blocks
+        try (var input = Files.newInputStream(path)) {
+            StreamUtils.batch(reader.stream(input)).forEach(importer);
         }
     }
 }

Reply via email to