Hi Gerd,

I don't observe any significant differences in compilation. But to make it more optimized, we can put SizeFilter before DouglasPeuckerFilter. I have attached a second patch here.

There is a difference in results. See pictures with DouglasPeuckerFilter after RoundCoordsFilter and new version with DouglasPeuckerFilter before. This is for 22-bit resolution, so effects are probably more clear.

--
Best regards,
Andrzej

Index: src/uk/me/parabola/mkgmap/build/MapBuilder.java
===================================================================
--- src/uk/me/parabola/mkgmap/build/MapBuilder.java     (revision 4677)
+++ src/uk/me/parabola/mkgmap/build/MapBuilder.java     (working copy)
@@ -1188,10 +1188,10 @@
                
                LayerFilterChain filters = new LayerFilterChain(config);
                if (enableLineCleanFilters && (res < 24)) {
-                       filters.addFilter(new RoundCoordsFilter());
                        filters.addFilter(new SizeFilter(MIN_SIZE_LINE));
                        if(reducePointError > 0)
                                filters.addFilter(new 
DouglasPeuckerFilter(reducePointError));
+                       filters.addFilter(new RoundCoordsFilter());
                }
                filters.addFilter(new LineSplitterFilter());
                filters.addFilter(new RemoveEmpty());
@@ -1243,7 +1243,6 @@
                LayerFilterChain filters = new LayerFilterChain(config);
                filters.addFilter(new PolygonSplitterFilter());
                if (enableLineCleanFilters && (res < 24)) {
-                       filters.addFilter(new RoundCoordsFilter());
                        int sizefilterVal =  
getMinSizePolygonForResolution(res);
                        if (sizefilterVal > 0)
                                filters.addFilter(new 
SizeFilter(sizefilterVal));
@@ -1251,6 +1250,7 @@
                        //Is there an similar algorithm for polygons?
                        if(reducePointErrorPolygon > 0)
                                filters.addFilter(new 
DouglasPeuckerFilter(reducePointErrorPolygon));
+                       filters.addFilter(new RoundCoordsFilter());
                }
                filters.addFilter(new RemoveObsoletePointsFilter());
                filters.addFilter(new RemoveEmpty());
_______________________________________________
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to