
Hi WanMil,
Reducing the img file size is a nice subeffect. As long as I don't know for sure that spikes are not an error I would avoid to leave them in the img.
I agree.
Sometimes the result of the RoundCoordsFilter is an invalid polygons, which means the polygon might be self intersecting and/or contains spikes and holes as it could be seen in my example. These invalid polygons are forwarded to other filters.
To be honest: I haven't checked if my example polygon looks bad in the map. But checking the code I see the following might happen: 1. RoundCoordsFilter creates an invalid polygon with hole 2. PolygonSplitterFilter might split the polygon because it is too large. It converts the polygon to a java.awt.geom.Area object, splits it into two halves and converts it back in the method PolygonSplitterBase.areaToShapes(..) method. This method does not check the orientation of the returned polygons and therefore converts the hole to same type the polygon has - in other words the hole is removed.
Of course we could say this is an error of the PolygonSplitterBase.areaToShapes(..) method (and we can fix it) but I think it would be worthy to check and optimize the whole chain a polygon goes through. Maybe we find needless steps we can remove, maybe we find other errors we can fix and maybe we can improve some steps which will improve the overall results. At the moment I guess nobody can say for sure what really happens in the long chain.
Yes, I got the same impression. I started to add some createGPX calls to be able to compare the input coming from StyledConverter and the output that is written to the img (if at all). I think the most obvious problem is the cutOutInnerPolygons() method that creates the thin areas which are later deformed by the filters. I will focus on that. Ciao, Gerd