[mkgmap-dev] highway count not fixed yet... - merge-roads-branch
From Gerd Petermann gpetermann_muenchen at hotmail.com on Sun Sep 29 12:30:45 BST 2013
Hi WanMil, thanks for the ascii graphics, I think that explains what goes wrong with Felix' style. I still don't see a need to change the setHighwayCount() method as long as we call it after the mergeRoads(). Why don't I like the usage of the highway count? Well, in some places we increment the counter for the 1st and last point of a way and the comment says // make sure the way has nodes at each end If that is really needed, I'd prefer to set a flag instead of messing up the counter. Gerd > Date: Sun, 29 Sep 2013 13:01:17 +0200 > From: wmgcnfg at web.de > To: mkgmap-dev at lists.mkgmap.org.uk > Subject: Re: [mkgmap-dev] highway count not fixed yet... - merge-roads-branch > > > WanMil wrote > >> Hi Gerd, > >> > >> in my opinion recalculating the highway counter after removing the short > >> arcs should fix all problems, shouldn't it? > > > > Don't think so. All routines that replace or add points after that must > > make sure that they maintain the correct highway count. > > > > Ok, which routines perform such modifications? I couldn't find any such > modifications of MapRoad instances after the StyledConverter. > > > > > > > WanMil wrote > >> I've added three changes to the patch: > >> 1. When calculating the highway count ways with duplicate id are not > >> considered. This avoid that all points of a duplicated way are preserved > >> by all filters. > >> I think this should be modified a bit. For the first and last point of > >> those ways the highway count should be increased and also all points > >> where another way is connected. I have no use case where this matters > >> but I think it is the "correct" counting? > > > > No, it just increases the possibility that the counter overflows. > > Maybe that's true for the trunk but in the branch there are real cases > where it matters. > > Assume the following two ways: > > x>>>>>>>>>x===========x > 1 2 1 > > (x = Node; >> oneway line; === oneway=no; highway count below nodes) > > The style might duplicate the oneway=no way into to oneway=yes ways > > >>>>>>>>>>> > x>>>>>>>>>x<<<<<<<<<<<x > 1 2 1 > > The merger might merge two of the ways: > > <<<<<<<<<<< > x>>>>>>>>>x>>>>>>>>>>>x > 1 1 1 > > As a result the highway count of the 2nd and 3rd node is wrong. It > should be 2 instead of 1. And AFAIK this difference matters. > > > > Maybe we should not use this counter at all. The information that > > it "hides" is that a point connects two or more roads. > > I think a better solution would be to have a method markRoutingNodes() > > which uses the counter and sets a bit flag in the coord instance. > > This routine would replace setHighwayCounts() and resetHighwayCounts(). > > I don't understand the advantage? I think maintaining the highway count > is the same like markRoutingNodes(). How do you want to know when to > call markRoutingNodes()? > > > > > > > WanMil wrote > >> 2. I have added the problematic point in the error message of the > >> MapBuilder in case a node is not a CoordNode. Just having the way id > >> might not be enough information and the way also might have been merged. > >> > >> 3. I have moved the recalculation of the highway counters after the > >> merge procedure. This should not change anything but it avoids a problem > >> with merging... > > > > This is a good idea. Maybe do it before and after? That also means that > > decHighwayCount() is obsolete, doesn't it? > > decHighwayCount() is obsolete as long as the highway counters are > recalculated after mergeRoads(). When recalculating the highway count > after mergeRoads() the RoadMerger does not care about (correct) highway > counts (maybe a perf improvement might require correct highway counts > but I don't know if the improvement is neccessary). > > > > > Gerd > > > > > > > > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at lists.mkgmap.org.uk > http://lists.mkgmap.org.uk/mailman/listinfo/mkgmap-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20130929/8ac9c69a/attachment.html
- Previous message: [mkgmap-dev] highway count not fixed yet... - merge-roads-branch
- Next message: [mkgmap-dev] highway count not fixed yet... - merge-roads-branch
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list