> Date: Thu, 26 Jan 2012 22:42:36 +0100
> From: wmgcnfg@web.de
> To: mkgmap-dev@lists.mkgmap.org.uk
> Subject: Re: [mkgmap-dev] mkgmap r2179: Still NullPointerException in BoundaryUtil
>
> I have checked the Way.clockwise() method and I think it's completely
> correct. I doubt that it is possible to create an overflow with normal
> map data.
Correct. There is no problem with overflow. The problem is in the routine
Java2DConverter.areaToShapes().
...
int lat = Math.round(res[1]);
int lon = Math.round(res[0]);
...
In special cases, this rounding can change a clockwise way to an counter-clockwise
way or vice versa.
>
> Also the 4 points example should be completely correct if the points are
> given as longitude/latitude. In this case it is counterclockwise.
> [2412980/371559, 2412981/371558, 2412992/371544, 2412980/371559]
Sorry, the points are given as lat/lon pairs, but that doesn't matter, you are right, the way with these
(rounded) values is counter-clockwise. The non-rounded values are different and
describe a way that is clockwise.
>
> The misinterpretation is caused by errornously assigning longitude to
> the x axis but it is the y axis.
I know that I tend to misinterpret the names (my patch used height for latitude
values and width for longitude values :-( , but the result doesn't depend on the
interpretation.
Gerd