Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Gerd, I think GPSMapEdit does it correctly. Each line should be extended up to EndLevel, so it means that first line should be present on levels 0-2 and second on levels 1-2. Multiple DATA in a statement is not a typical case. I think these statements are created usually by GPSMapEdit. I know about to cases. First is, when you truncate map area. This operation can remove a middle part of a polyline and create an object with multiple DATA on the same level. That kind of statement could include EndLevel statement, which should be applied for each DATA. Second case is, when you convert img to mp. In this case, every polyline contains multiple DATA on different levels, but no EndLevel statement. Youd example is a mixed case, but I think EndLevel should be applied for each DATA. -- Best regards, Andrzej ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Andrzej, the manual says for that example: "The path is still visible at levels 0 to 3 but the shape changes subtly between level zero (the greatest detail) and level one. At level zero there are four vertices in the line. At levels one and two this reduces to three vertices. What we are actually doing here is specifying that we are only interested in the precise shape of the bend in the path at the highest zoom level. Reducing the detail at higher zoom levels can reduce the size of your digital map, reducing upload times and helping to fit in memory where otherwise it wouldn't. " Gerd Von: mkgmap-dev im Auftrag von Andrzej Popowski Gesendet: Samstag, 9. Februar 2019 12:44 An: mkgmap-dev@lists.mkgmap.org.uk Betreff: Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Gerd, I think GPSMapEdit does it correctly. Each line should be extended up to EndLevel, so it means that first line should be present on levels 0-2 and second on levels 1-2. Multiple DATA in a statement is not a typical case. I think these statements are created usually by GPSMapEdit. I know about to cases. First is, when you truncate map area. This operation can remove a middle part of a polyline and create an object with multiple DATA on the same level. That kind of statement could include EndLevel statement, which should be applied for each DATA. Second case is, when you convert img to mp. In this case, every polyline contains multiple DATA on different levels, but no EndLevel statement. Youd example is a mixed case, but I think EndLevel should be applied for each DATA. -- Best regards, Andrzej ___ 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
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Gerd, I have compiled this example. cGPSmapper doesn't work like in quoted description. When EndLevel is present, cGPSmapper uses only lowest DATA and ignore any other. See description of EndLevel, this one is true: Endlevel=# - The coordinates in the lowest numbered Data# line apply up to the specified EndLevel=#. When compiling example: [RGN40] Type=22 Label= EndLevel=2 Data0=(51.562624,-1.070283),(51.561637,-1.070592),(51.561272,-1.069878), (51.560059,-1.064277) Data1=(51.562624,-1.070283),(51.561272,-1.069878),(51.560059,-1.064277) [END] the result is the same as for: [RGN40] Type=22 Label= EndLevel=2 Data0=(51.562624,-1.070283),(51.561637,-1.070592),(51.561272,-1.069878), (51.560059,-1.064277) [END] You can see the change between level0 and level1, if you remove EndLevel statement: [RGN40] Type=22 Label= Data0=(51.562624,-1.070283),(51.561637,-1.070592),(51.561272,-1.069878), (51.560059,-1.064277) Data1=(51.562624,-1.070283),(51.561272,-1.069878),(51.560059,-1.064277) [END] This means, that GPSMapEdit doesn't display multiple DATA with EndLevel correctly. -- Best regards, Andrzej ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Andrzej, thanks for your research. So I think mkgmap should produce the same results as cGPSmapper does? Maybe there are different versions of the binary with different behaviour? I'll have to try what happens without the Endlevel line ... Gerd Von: mkgmap-dev im Auftrag von Andrzej Popowski Gesendet: Samstag, 9. Februar 2019 19:55 An: mkgmap-dev@lists.mkgmap.org.uk Betreff: Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Gerd, I have compiled this example. cGPSmapper doesn't work like in quoted description. When EndLevel is present, cGPSmapper uses only lowest DATA and ignore any other. See description of EndLevel, this one is true: Endlevel=# - The coordinates in the lowest numbered Data# line apply up to the specified EndLevel=#. When compiling example: [RGN40] Type=22 Label= EndLevel=2 Data0=(51.562624,-1.070283),(51.561637,-1.070592),(51.561272,-1.069878), (51.560059,-1.064277) Data1=(51.562624,-1.070283),(51.561272,-1.069878),(51.560059,-1.064277) [END] the result is the same as for: [RGN40] Type=22 Label= EndLevel=2 Data0=(51.562624,-1.070283),(51.561637,-1.070592),(51.561272,-1.069878), (51.560059,-1.064277) [END] You can see the change between level0 and level1, if you remove EndLevel statement: [RGN40] Type=22 Label= Data0=(51.562624,-1.070283),(51.561637,-1.070592),(51.561272,-1.069878), (51.560059,-1.064277) Data1=(51.562624,-1.070283),(51.561272,-1.069878),(51.560059,-1.064277) [END] This means, that GPSMapEdit doesn't display multiple DATA with EndLevel correctly. -- Best regards, Andrzej ___ 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
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Gerd, I would rather have mkgmap compatible with real compiler than manual, but in this particular case, both options are reasonable. I'm using the latest version of cGPSmapper 100d. The earliest version I have is 74 from 2004. It behaves the same. -- Best regards, Andrzej ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Gerd, I have tried to compile some more complicated mp. First problem is, that restriction placed on the beginning of the file give multiple warnings, like: SEVERE (RoadNetwork): 8001.mp: 1 can't locate arc from 'via' node 1 to 'to' node 171 on way 431744 SEVERE (RoadNetwork): 8001.mp: 4 can't locate arc from 'via' node 4 to 'to' node 59519 on way 1020461 SEVERE (RoadNetwork): 8001.mp: 8 can't locate arc from 'via' node 8 to 'to' node 80234 on way 812265 Then mkgmap crashes: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option If I move restriction to the end of file, then there is no warning, but crash is the same: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option -- Best regards, Andrzej ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Andrzej, please can you share your input file 8001.mp? Gerd Von: mkgmap-dev im Auftrag von Andrzej Popowski Gesendet: Sonntag, 10. Februar 2019 00:41 An: mkgmap-dev@lists.mkgmap.org.uk Betreff: Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Gerd, I have tried to compile some more complicated mp. First problem is, that restriction placed on the beginning of the file give multiple warnings, like: SEVERE (RoadNetwork): 8001.mp: 1 can't locate arc from 'via' node 1 to 'to' node 171 on way 431744 SEVERE (RoadNetwork): 8001.mp: 4 can't locate arc from 'via' node 4 to 'to' node 59519 on way 1020461 SEVERE (RoadNetwork): 8001.mp: 8 can't locate arc from 'via' node 8 to 'to' node 80234 on way 812265 Then mkgmap crashes: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option If I move restriction to the end of file, then there is no warning, but crash is the same: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option -- Best regards, Andrzej ___ 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
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Andrzej, I found an older example with restrictions and I can reproduce the problem. It seems that our reader is too restrictive regarding the spelling of key words. For example, the parser understands "TraffPoints" but not "TRAFFPOINTS" I can try to change the parser so that it always uses method String.equalsIgnoreCase() instead of String.equals(). Gerd Von: mkgmap-dev im Auftrag von Gerd Petermann Gesendet: Sonntag, 10. Februar 2019 06:42 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Andrzej, please can you share your input file 8001.mp? Gerd Von: mkgmap-dev im Auftrag von Andrzej Popowski Gesendet: Sonntag, 10. Februar 2019 00:41 An: mkgmap-dev@lists.mkgmap.org.uk Betreff: Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Gerd, I have tried to compile some more complicated mp. First problem is, that restriction placed on the beginning of the file give multiple warnings, like: SEVERE (RoadNetwork): 8001.mp: 1 can't locate arc from 'via' node 1 to 'to' node 171 on way 431744 SEVERE (RoadNetwork): 8001.mp: 4 can't locate arc from 'via' node 4 to 'to' node 59519 on way 1020461 SEVERE (RoadNetwork): 8001.mp: 8 can't locate arc from 'via' node 8 to 'to' node 80234 on way 812265 Then mkgmap crashes: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option If I move restriction to the end of file, then there is no warning, but crash is the same: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option -- Best regards, Andrzej ___ 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
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Andrzej, besides the mixed case problem mkgmap also cannot handle 4 node restrictions in polish input. Will take a while ... Gerd Von: Gerd Petermann Gesendet: Sonntag, 10. Februar 2019 09:26 An: Gerd Petermann; Development list for mkgmap Betreff: AW: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Andrzej, I found an older example with restrictions and I can reproduce the problem. It seems that our reader is too restrictive regarding the spelling of key words. For example, the parser understands "TraffPoints" but not "TRAFFPOINTS" I can try to change the parser so that it always uses method String.equalsIgnoreCase() instead of String.equals(). Gerd Von: mkgmap-dev im Auftrag von Gerd Petermann Gesendet: Sonntag, 10. Februar 2019 06:42 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Andrzej, please can you share your input file 8001.mp? Gerd Von: mkgmap-dev im Auftrag von Andrzej Popowski Gesendet: Sonntag, 10. Februar 2019 00:41 An: mkgmap-dev@lists.mkgmap.org.uk Betreff: Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format Hi Gerd, I have tried to compile some more complicated mp. First problem is, that restriction placed on the beginning of the file give multiple warnings, like: SEVERE (RoadNetwork): 8001.mp: 1 can't locate arc from 'via' node 1 to 'to' node 171 on way 431744 SEVERE (RoadNetwork): 8001.mp: 4 can't locate arc from 'via' node 4 to 'to' node 59519 on way 1020461 SEVERE (RoadNetwork): 8001.mp: 8 can't locate arc from 'via' node 8 to 'to' node 80234 on way 812265 Then mkgmap crashes: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option If I move restriction to the end of file, then there is no warning, but crash is the same: java.lang.NullPointerException at uk.me.parabola.imgfmt.app.net.RoadNetwork.addRestriction(RoadNetwork.java:320) at uk.me.parabola.mkgmap.general.MapDetails.addRestriction(MapDetails.java:130) at uk.me.parabola.mkgmap.reader.polish.RestrictionHelper.processAndAddRestrictions(RestrictionHelper.java:54) at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:151) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:289) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:285) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exiting - if you want to carry on regardless, use the --keep-going option -- Best regards, Andrzej ___ 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
Re: [mkgmap-dev] Commit r4270: improve reader for polish (*.mp) format
Hi Gerd, doesn't mkgmap support multiple points restrictions from OSM data? Anyway, removing 4-point restriction prevents mkgmap from crashing, but errors still remains: SEVERE (RoadNetwork): 8001.mp: 1 can't locate arc from 'via' node 1 to 'to' node 171 on way 431744 SEVERE (RoadNetwork): 8001.mp: 4 can't locate arc from 'via' node 4 to 'to' node 59519 on way 1020461 SEVERE (RoadNetwork): 8001.mp: 8 can't locate arc from 'via' node 8 to 'to' node 80234 on way 812265 Looks like this message is issued for all restrictions, regardless if they are before or after roads in source file. I have checked in BaseCamp, restrictions don't work. Except of restrictions, map looks good. -- Best regards, Andrzej ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev