logo separator

[mkgmap-dev] [PATCH v3] - Sub-optimal fix to limit excessive inter-node arc length

From Mark Burton markb at ordern.com on Tue Apr 28 12:52:50 BST 2009

Hi Marko,

> On Mon, Apr 27, 2009 at 03:59:58PM +0100, Mark Burton wrote:
> > As most maps probably don't need this fix, here's a version of the
> > patch that doesn't do the arc length limiting unless you specify the
> > "--limit-arc-length" option. I have made the diagnostic message that is
> > output when an arc length is too long into an error (was a warning) and
> > it spells out what to do to get around the problem.
> I tried out the patch on mkgmap r1022, and it made me aware of the problem
> with http://download.geofabrik.de/osm/europe/finland.osm.bz2 by
> emitting two identical warnings:
> SEVERE (RouteArc): Way null contains an arc whose length is too big to be encoded so the road will not be routable (you may use the --limit-arc-length option to work around this problem)
> [Suggestion: could it print the ref or the id if there is no name?]

I don't think the id is available but I can look into getting the ref
output. I will do that in a minute and post a new patch soon if

> After adding --limit-arc-length, I got a different error message:
> SEVERE (StyledConverter): Way null contains a segment that is longer than 16383 (routing will fail for that way)
> Mark, could you have a look what is going wrong?

What's wrong is that that way has a single segment that is too long for
us to handle with the present code. If the code was smarter it could
split that segment into chunks that were small enough to not cause a
problem by just adding extra points. I don't have much spare time at the
moment so I can't look at that right now but I will happily look at it
in the future if no-one else beats me too it. If you can identify the
way in question, just add some points to reduce the size of the segment.

Clinton reported that the patch doesn't appear to make much difference
to the processing time so I think we don't require the option to enable
the code that checks for long segments.



More information about the mkgmap-dev mailing list