[mkgmap-dev] highway count not fixed yet... - merge-roads-branch
From WanMil wmgcnfg at web.de on Sun Sep 29 14:24:22 BST 2013
Hi Gerd, I've commited the changes to the merge_road branch. setHighwayCount() still need to be changed. In case the merged road has the same id as the duplicate road you have the same problem again. <<<<<<<<<<< (not counted due to same id) x>>>>>>>>>x>>>>>>>>>>>x 1 1 1 should be <<<<<<<<<<< x>>>>>>>>>x>>>>>>>>>>>x 1 2 2 I still don't understand how you want to check which node is a routing node. It's easy for the first and the last node but how to proceed with the nodes inbetween? WanMil > 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 > > > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at lists.mkgmap.org.uk > http://lists.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >
- 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