
Hi Ticker, OK, I'll ty to reproduce the routing error on my Oregon. If there is no problem on the device we might keep the option and document that it causes trouble with Mapsource and Basecamp, else I'll remove the code until we know better. Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Samstag, 23. November 2019 11:30 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes Hi Gerd I was wondering if the problem related to this and was going to try some experiments. eg just changing just type. I think there is some scope in adding 0x50 to it; one of my devices shows these, but with an added direction. But maybe it's being in the road structures that Basecamp does't like. If this is the case it becomes much more complicated and maybe not worth doing; and probably better just to keep the option as it is but document the incompatibility. I still think, given the random nature of the failures, that there is as slightly incorrect structure being generated somewhere, and I've been going through the code looking at positioning, padding for alignments etc. Ticker On Sat, 2019-11-23 at 09:09 +0000, Gerd Petermann wrote:
Hi Ticker,
I looked at some Garmin demo maps and I found no case where a road appeared in NET but not in NOD, so I think it should better not be done. No idea what problem it causes, but the Garmin software is probably not prepared to handle this case and fails to build internal data structure. I think we see a similar effect with the routable types without NET info (e.g. when you use line type 0x16 without road_class or road_speed).
So, I think we should remove the documentation and also the code as it is now. Maybe the island detection could work in a very different way. My current thinking is that it could work like the special tags mkgmap:set_unconnected_type=<type> and mkgmap:set_semi_connected_type=<type> So, instead of adding those special tags to various lines in the style we might use a simple replacement table containing the replacement type (or "none") for each routable type. The table might be a new style file containing something like
# routing island replacement types 0x01: 0x10800 0x02: 0x10801 0x03: 0x10802 .... 0x07: none ...
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Freitag, 22. November 2019 17:53 An: Ticker Berkin; Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes
Hi Ticker,
I also saw routing errors in Mapsource with my sample and the - -preserve-element-order activated. I think the Basecamp dialog shows some options which are not really available in non-NT maps, maybe there is a wrong fallback so that motorcycle routing works like pedestrian or maybe bicycle routing.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Freitag, 22. November 2019 17:48 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes
Hi Gerd
I'll build this and experiment.
Reg. previous email - Basecamp generating routes for MotorCycle is very strange. I tried setting all the attributes of Motorcar to the same as Motorcycle and it made no difference, so the must be some unknown bits in the img that mkgmap isn't getting quite right.
Ticker
On Fri, 2019-11-22 at 16:41 +0000, Gerd Petermann wrote:
Hi Ticker,
attached is a patch which improves routing for my small sample with only one island. It also fixes some of the problems reported by display tool by calling the island detection before writing RGN. Still, it doesn't help at all with your test case. I did not see any effect on routing when I changed the order of roads in NET. So, order in RGN is important, but maybe the problem is not the order within one subdiv, maybe it would be better to change the split process so that non-routable roads (those with skipAddToNOD() == true) are in different sub divisions.
The sample is here: http://files.mkgmap.org.uk/download/456/ticker-part-mod.zip
Maybe you want to play with that, I'll continue tomorrow...
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Freitag, 22. November 2019 12:57 An: Ticker Berkin; Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes
Hi Ticker,
Reg. order: All files (RGN, NET, NOD) show changes when the order changes. Strange thing is that Basecamp doesn't fail to calculate the route for other vehicles.
I also looked at those messages from NodCheck. I think it doesn't handle the case that two boundary nodes appear at the same (Garmin) location. Anyhow, in my reduced data this message is not displayed and still routing fails.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Freitag, 22. November 2019 12:17 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes
Hi Gerd
That's interesting. What effect does this ordering have on the resultant NET/NOD/RGN ordering and contents? Should the RouteCenters have the same contents?
I've been trying to decipher the way these are written and there is a lot of leaving space for later writing once offsets are known, so if some sizes or counts are not what the logic expects, it could cause apparently random problems depending ordering.
Looking at the errors at the end of NodCheck:
ERROR: class boundary node:f81c5: not sorted ERROR: node 35bdd: high class boundary node not included in NOD 4 [1,] the first happens with older releases, before the NET-no-NOD merge, but the next is new. NodCheck might just be running off the end of that section of the file, but I was trying to work out group logic was processing road-class for NODs that would be dropped
Ticker
On Fri, 2019-11-22 at 10:44 +0000, Gerd Petermann wrote:
Hi Ticker,
some news: I am able to reproduce the routing problems in Basecamp with a rather small input file and the default style. The involved route is very short. The interesting point is this: When I use this command the routing problem appears: --check-routing-island-len=700 --route --gmapi --preserve-element -order ticker-part-mod.osm When I remove the option --preserve-element-order the problem disappears. --check-routing-island-len=700 --route --gmapi ticker-part -mod.osm
The data contains an island which appears as first way in the input file. When I move it before the first relation routing works also with --preserve-element-order, so order seems important. Open question is what needs to be sorted...
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Donnerstag, 21. November 2019 19:52 An: Ticker Berkin; Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes
Hi Ticker,
the attached patch for mkgmap makes display tool happy again but it doesn't solve the routing problems in Basecamp.
I still try to find a reason for the routing problems, maybe it simply doesn't like roads without NOD info in a routable map, maybe your two tiles are very special...
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Donnerstag, 21. November 2019 15:42 An: Ticker Berkin; Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes
Hi Ticker,
I'm still investigating. I think display tool fails when it finds nodes in NOD without any arcs. With the current code this happens e.g. for way 23989284 in 74210002.osm.pbf, a highway way near the tile boundary, with only one node in the tile and no connection to other roads in the tile. I am not yet sure where to fix that.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Donnerstag, 21. November 2019 14:19 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] Basecamp and NET/NOD changes
Hi Gerd
Thanks for investigating this. As the eTrex routing seems to work (maybe it is more similar to Mapsource than Basecamp) I'll persist with island removal.
Looking at display:NetCheck errors, it looks like the RoadDef.netFlags bit: RoadDef: public static final int NET_FLAG_ADDRINFO = 0x10; display: private static final int RD_HAS_STREET_ADDRESS_INFO = 0x10; and/or nodeCountInner isn't getting set correctly when island -removal happens to the road.
Ticker
On Thu, 2019-11-21 at 10:00 +0000, Gerd Petermann wrote:
Hi Ticker,
I think we have two different problems here. I can reproduce the errors with display tool even with very small input files and it seems that it existed in almost all versions of the NET-no-NOD branch :-( I have no idea why I didn't see it in various tests before. These problems disappear when I change the code so that the first and last node in a road are always routing nodes. (as it was before r4300) Maybe display tool simply expects this and searches for nodes which don't exist? On the other hand I can reproduce the routing problems with Basecamp (4.7.1), but not with MapSource. And the problems in Basecamp do not disappear when I change the code to add the nodes again, they seem to depend on option --check-routing-island-len only. I always thought that Garmin uses the same routing algo in Mapsource and Basecamp, but at least 4.7.1 shows that I am wrong.
So, for now, I'd say that option --check-routing-island-len should not be used :(
Gerd
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev