logo separator

[mkgmap-dev] White stripes in the sea

From WanMil wmgcnfg at web.de on Wed Jan 2 21:24:05 GMT 2013

>  > Ok, so you mean areas that are too thin are not drawn?
>
> yes, I added a few system.out.println and found that a lot of sea or
> land polygons are
> completely dropped by the filters, for example a polygon with 14 points
> was reduced two 3 points by the RoundCoordsFilter and then thrown away
> by another.
>

After a quick check of the RoundCoordsFilter I guess the problem is not 
only too thin areas but also too small areas?
Without having understood the filter in deep detail it seems that it 
rounds the coord according the shift which I think is another word for 
resolution/level.
That also means if you have a big area that is split into many small 
areas the RoundCoordsFilter will all remove them and it is possible that 
you don't see the big area at all.

Some ASCII art for a better understanding:
The big rectangular area is divided into several small subareas (o):
ooooooooo
ooooooooo
ooooooooo
ooooooooo
ooooooooo

The RoundCoordsFilter removes all small areas o because they are too 
small for the given resolution. So the whole area disappears although it 
is big enough for the resolution to be displayed.

I know that it would be nonsense to split the big area in the small 
subareas but in fact that's the same problem you will get with any mp 
algorithm that cuts the multipolygon into distinct singular areas.

As a result we maybe have to break out an idea from the beginning of the 
mp implementation. It would be possible to do the cutting at a later 
position in the mkgmap chain. At the moment the cutting is done once for 
all resolutions. It would be better to do the cutting separate for each 
resolution. This would enable that in lower resolutions small inner 
polygons could be removed from the mp cutting because the inner area is 
so small that it is not displayed at that resolution.

That's an interesting idea and I guess it would improve the look of the 
mkgmap generated maps quite a lot. At the same time I guess that it 
doesn't make much sense trying to improve the mp cut algorithm because 
you will reach similar problems again (one exception: the non 
java.awt.geom.Area compatible algorithm might work because it does not 
change the bounding box size of each polygon)

WanMil



More information about the mkgmap-dev mailing list