Re: [mkgmap-dev] Minor documentation update
Hi Mike, sorry for the delay. It seems you did not see my post http://gis.19327.n8.nabble.com/Need-help-with-build-scripts-tt5957298.html where I attached a modified version of the buildoptions program. I've merged your changes with my patch, but omitted the part starting with "Input files may be of the following types: ". The list is incomplete. I think the program understands various compressed formats like *.osm.bz2 or *.osm.gz or *.osm.zip. Also missing is the polish format *.mp. We have a file resources\help\en\inputs. I think this would be the best place to put these details, but the link in file help is missing. I am not sure where to put your program and what licence /copyright message to use. This patch places it in src\buildoptions\OptionsBuilder.java because that made it easier for me to use it. Compared to my first patch I've modified the build script so that options is not automatically overwritten, instead one has to use ant options-file to "compile" it. Gerd Von: mkgmap-dev im Auftrag von Mike Baggaley Gesendet: Mittwoch, 12. Februar 2020 12:44 An: 'Development list for mkgmap' Betreff: [mkgmap-dev] Minor documentation update Hi Gerd, now that my previous documentation patch has been committed, I have noticed a couple of errors in it that I didn't notice because I didn't have the means to compile it into the web pages. Please find attached a small patch that corrects these errors and adds some information on the input files, primarily to describe typ file compilation. I have also slightly tweaked the code for generating the options file from options.txt, but as the previous version does not appear to be in SVN, this has come across as a complete file, rather than the change (which is just the deletion of the hyphen character in 'if (line.startsWith(";-")) {'). Regards, Mike options-generator-v2.patch Description: options-generator-v2.patch ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Re: [mkgmap-dev] Fwd: Re: AW: More method options for is_in function
Hi Arndt, Gerd Sorry - this was me mis-reading the code and is simply fixed. The assertion failed when there are no polygons in the tile that match the tag/key. patch attached Ticker On Thu, 2020-02-13 at 16:39 +, Ticker Berkin wrote: > Hi Arndt > > I can reproduce this - it seem to be something related to the > expression structure. > > Probably it just returned 'false' before, rather than raising the > exception. > > I'll investigate > > Ticker > > On Thu, 2020-02-13 at 16:38 +0100, Arndt Röhrig wrote: > > > Hi Gerd, hi Ticker, > > > > > > now i use is-in-r-4449. Sorry, some mistakes happen without > > > explanation. > > > > > > 4449 report this: > > > > > > Greets > > > Arndt > > > > > > 16:24:37,71 - mkgmap .\tools\mkgmap-is-in-r4449 Speiche_Fabrik > > > java.lang.AssertionError: invoked the non-augmented instance > > > at > > > uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is > > > c > ___ > mkgmap-dev mailing list > mkgmap-dev@lists.mkgmap.org.uk > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-devIndex: src/uk/me/parabola/mkgmap/osmstyle/function/IsInFunction.java === --- src/uk/me/parabola/mkgmap/osmstyle/function/IsInFunction.java (revision 4450) +++ src/uk/me/parabola/mkgmap/osmstyle/function/IsInFunction.java (working copy) @@ -117,10 +117,9 @@ public String calcImpl(Element el) { log.info("calcImpl", System.identityHashCode(this), kind, params, el); assert qt != null : "invoked the non-augmented instance"; - resetHasFlags(); - if (qt.isEmpty()) return String.valueOf(false); + resetHasFlags(); try { switch (kind) { case POINT: @@ -134,7 +133,7 @@ break; } } catch (CanStopProcessing e) {} - log.info("done", hasIn, hasOn, hasOut); + log.info("done", System.identityHashCode(this), hasIn, hasOn, hasOut); return String.valueOf(mapHasFlagsAnswer()); } @@ -304,7 +303,17 @@ } } } +/* +make above function return boolean depending on it finding something. +maybe should also respond to ON +in below, delay setting the IN flag until have done the above, because the line could all be ON the inner. +and use return from above to set IN, assume that when it finds something, it will set IN of OUT etc + +for POLY, still need a final check that, even if ON/IN, none of the holes is in this one, so +we need another check (can we use above not-in-hole...) that takes a point from the hole and +checks if it is the polyLine + */ private void doCommonTest(Element el) { List polyLine = ((Way)el).getPoints(); Area elementBbox = Area.getBBox(polyLine); @@ -388,10 +397,7 @@ } } } - if (!matchingPolygons.isEmpty()) { - return new ElementQuadTree(elementSaver.getBoundingBox(), matchingPolygons); - } - return null; + return new ElementQuadTree(elementSaver.getBoundingBox(), matchingPolygons); } public void unitTestAugment(ElementQuadTree qt) { ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Re: [mkgmap-dev] Fwd: Re: AW: More method options for is_in function
Hi Arndt I can reproduce this - it seem to be something related to the expression structure. Probably it just returned 'false' before, rather than raising the exception. I'll investigate Ticker On Thu, 2020-02-13 at 16:38 +0100, Arndt Röhrig wrote: > > Hi Gerd, hi Ticker, > > > > now i use is-in-r-4449. Sorry, some mistakes happen without > > explanation. > > > > 4449 report this: > > > > Greets > > Arndt > > > > 16:24:37,71 - mkgmap .\tools\mkgmap-is-in-r4449 Speiche_Fabrik > > java.lang.AssertionError: invoked the non-augmented instance > > at uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is > > c ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
[mkgmap-dev] Fwd: Re: AW: More method options for is_in function
Hi Gerd, hi Ticker, now i use is-in-r-4449. Sorry, some mistakes happen without explanation. 4449 report this: Greets Arndt 16:24:37,71 - mkgmap .\tools\mkgmap-is-in-r4449 Speiche_Fabrik java.lang.AssertionError: invoked the non-augmented instance at uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is ction.java:119) at uk.me.parabola.mkgmap.osmstyle.function.CachedFunction.value(Cac nction.java:61) at uk.me.parabola.mkgmap.osmstyle.eval.EqualsOp.eval(EqualsOp.java: at uk.me.parabola.mkgmap.osmstyle.eval.AbstractOp.eval(AbstractOp.j 23) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.ActionRule.resolveType(ActionRule :72) at uk.me.parabola.mkgmap.osmstyle.RuleSet.resolveType(RuleSet.java: at uk.me.parabola.mkgmap.osmstyle.StyledConverter.convertWay(Styled rter.java:462) at uk.me.parabola.mkgmap.reader.osm.ElementSaver.convert(ElementSav va:243) at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDat ce.java:163) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:1 at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:54) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:291) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:287) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Sourc at java.lang.Thread.run(Unknown Source) java.lang.AssertionError: invoked the non-augmented instance at uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is ction.java:119) at uk.me.parabola.mkgmap.osmstyle.function.CachedFunction.value(Cac nction.java:61) at uk.me.parabola.mkgmap.osmstyle.eval.EqualsOp.eval(EqualsOp.java: at uk.me.parabola.mkgmap.osmstyle.eval.AbstractOp.eval(AbstractOp.j 23) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.ActionRule.resolveType(ActionRule :72) at uk.me.parabola.mkgmap.osmstyle.RuleSet.resolveType(RuleSet.java: at uk.me.parabola.mkgmap.osmstyle.StyledConverter.convertWay(Styled rter.java:462) at uk.me.parabola.mkgmap.reader.osm.ElementSaver.convert(ElementSav va:243) at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDat ce.java:163) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:1 at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:54) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:291) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:287) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Sourc at java.lang.Thread.run(Unknown Source) java.lang.AssertionError: invoked the non-augmented instance at uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is ction.java:119) at uk.me.parabola.mkgmap.osmstyle.function.CachedFunction.value(Cac nction.java:61) at uk.me.parabola.mkgmap.osmstyle.eval.EqualsOp.eval(EqualsOp.java: at uk.me.parabola.mkgmap.osmstyle.eval.AbstractOp.eval(AbstractOp.j 23) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:45) at uk.me.parabola.mkgmap.osmstyle.ActionRule.resolveType(ActionRule :72) at uk.me.parabola.mkgmap.osmstyle.RuleSet.resolveType(RuleSet.java: at uk.me.parabola.mkgmap.osmstyle.StyledConverter.convertWay(Styled rter.java:462) at uk.me.parabola.mkgmap.reader.osm.ElementSaver.convert(ElementSav va:243) at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDat ce.java:163) at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:1 at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:54) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:291) at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:287) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source at
Re: [mkgmap-dev] More method options for is_in function
Hi Ticker, thank you for help and sorry, i don´t remember that points include the access file. I move the is_in command to the line file. Now r4450 says Error in style: Error: (lines:8): Expecting ), instead saw landuse I don´t understand that. Is that a mistake in my is_in command? highway=* & rad!=ja & laufen!=ja & tunnel!=* & bridge!=* & istdrin!=n & is_in(landuse,cemetery,all)=true {set istdrin=j} Greets Arndt Ticker Berkin < rwb-mkg...@jagit.co.uk> hat am 13. Februar 2020 um 10:26 geschrieben: Hi Arndt you have an include 'inc/access' in styles_base/points and styles_gravel/points which gives the error about unsupported options. The crash is related: because the calls are textually identical, the optimiser semi-tries to share them between points and lines processing, it initializes one instance only, but later the correct ones are called for the 2 contexts. I introduced this assertion error in the last update to catch strange things like this happening. Before it would have quietly returned "false" Ticker On Thu, 2020-02-13 at 06:37 +0100, Arndt Röhrig wrote: Hi Ticker, mkgmap tell me: 6:33:39,37 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik Error in style: Error: (inc/access:73): Error: Third parameter 'all' of function is_in is not supported for this style section, valid are: [in, in_or_on, on] Error in style: Error: (inc/access:73): Error: Third parameter 'all' of function is_in is not supported for this style section, valid are: [in, in_or_on, on] Error in style: Error: (inc/access:73): Error: Third parameter 'all' of function is_in is not supported for this style section, valid are: [in, in_or_on, on] Error in style: Error: (inc/access:73): Error: Third parameter 'all' of function is_in is not supported for this style section, valid are: [in, in_or_on, on] Could not open style If i move the "is_in" command to the line file, mkgmap say: 6:30:43,78 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik java.lang.AssertionError: invoked the non-augmented instance at uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(IsInFun ction.java:119) at uk.me.parabola.mkgmap.osmstyle.function.CachedFunction.value(CachedFu nction.java:61) at uk.me.parabola.mkgmap.osmstyle.eval.EqualsOp.eval(EqualsOp.java:33) ... ___ 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] Commit r4450: Produce better error message when input-file is a directory
Version mkgmap-r4450 was committed by gerd on Thu, 13 Feb 2020 Produce better error message when input-file is a directory This also prevents a possible StringIndexOutOfBoundsException http://www.mkgmap.org.uk/websvn/revision.php?repname=mkgmap=4450 ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Re: [mkgmap-dev] More method options for is_in function
Hi Ticker, ah, yes, did not see the override. There is another caching mechanism in RuleSet.resolveType(int cacheId, Element el, TypeResult result) which might kick in. Not sure if this is relevant but you should be aware of it. Gerd Von: mkgmap-dev im Auftrag von Ticker Berkin Gesendet: Donnerstag, 13. Februar 2020 11:16 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] More method options for is_in function Hi Gerd I overrode getCacheTag() to fix this aspect, and you overrode toString() for something relating to the common sub-expressions; in both cases including the 'kind' and all the parameters. Yesterday, experimenting, I found it was consistent about create 2 instances, augmenting the same one twice and then using just that one for the actual work, but this was when the calls were in the same section. So, sometime I should investigate what happen when there valid identical calls in 2 sections. Ticker On Thu, 2020-02-13 at 09:53 +, Gerd Petermann wrote: > Hi Ticker, > > I think CachedFunction can't be used without changes. It uses > getName() which just returns "is_in" (no parameters). > > Gerd > > > Von: mkgmap-dev im Auftrag > von Ticker Berkin > Gesendet: Donnerstag, 13. Februar 2020 10:26 > An: Development list for mkgmap > Betreff: Re: [mkgmap-dev] More method options for is_in function > > Hi Arndt > > you have an include 'inc/access' in styles_base/points and > styles_gravel/points > > which gives the error about unsupported options. > > The crash is related: because the calls are textually identical, the > optimiser semi-tries to share them between points and lines > processing, > it initializes one instance only, but later the correct ones are > called > for the 2 contexts. I introduced this assertion error in the last > update to catch strange things like this happening. Before it would > have quietly returned "false" > > Ticker > > > On Thu, 2020-02-13 at 06:37 +0100, Arndt Röhrig wrote: > > Hi Ticker, > > > > mkgmap tell me: > > > > 6:33:39,37 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik > > Error in style: Error: (inc/access:73): Error: Third parameter > > 'all' > > of function is_in is not supported for this style section, valid > > are: > > [in, in_or_on, on] > > Error in style: Error: (inc/access:73): Error: Third parameter > > 'all' > > of function is_in is not supported for this style section, valid > > are: > > [in, in_or_on, on] > > Error in style: Error: (inc/access:73): Error: Third parameter > > 'all' > > of function is_in is not supported for this style section, valid > > are: > > [in, in_or_on, on] > > Error in style: Error: (inc/access:73): Error: Third parameter > > 'all' > > of function is_in is not supported for this style section, valid > > are: > > [in, in_or_on, on] > > Could not open style > > > > > > If i move the "is_in" command to the line file, mkgmap say: > > > > 6:30:43,78 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik > > java.lang.AssertionError: invoked the non-augmented instance > > at > > uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(IsInF > > un > > ction.java:119) > > at > > uk.me.parabola.mkgmap.osmstyle.function.CachedFunction.value(Cached > > Fu > > nction.java:61) > > at > > uk.me.parabola.mkgmap.osmstyle.eval.EqualsOp.eval(EqualsOp.java:33) > ... > > ___ > 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] More method options for is_in function
Hi Ticker, I think CachedFunction can't be used without changes. It uses getName() which just returns "is_in" (no parameters). Gerd Von: mkgmap-dev im Auftrag von Ticker Berkin Gesendet: Donnerstag, 13. Februar 2020 10:26 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] More method options for is_in function Hi Arndt you have an include 'inc/access' in styles_base/points and styles_gravel/points which gives the error about unsupported options. The crash is related: because the calls are textually identical, the optimiser semi-tries to share them between points and lines processing, it initializes one instance only, but later the correct ones are called for the 2 contexts. I introduced this assertion error in the last update to catch strange things like this happening. Before it would have quietly returned "false" Ticker On Thu, 2020-02-13 at 06:37 +0100, Arndt Röhrig wrote: > Hi Ticker, > > mkgmap tell me: > > 6:33:39,37 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Could not open style > > > If i move the "is_in" command to the line file, mkgmap say: > > 6:30:43,78 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik > java.lang.AssertionError: invoked the non-augmented instance > at > uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(IsInFun > ction.java:119) > at > uk.me.parabola.mkgmap.osmstyle.function.CachedFunction.value(CachedFu > nction.java:61) > at > uk.me.parabola.mkgmap.osmstyle.eval.EqualsOp.eval(EqualsOp.java:33) ... ___ 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] More method options for is_in function
Hi Arndt you have an include 'inc/access' in styles_base/points and styles_gravel/points which gives the error about unsupported options. The crash is related: because the calls are textually identical, the optimiser semi-tries to share them between points and lines processing, it initializes one instance only, but later the correct ones are called for the 2 contexts. I introduced this assertion error in the last update to catch strange things like this happening. Before it would have quietly returned "false" Ticker On Thu, 2020-02-13 at 06:37 +0100, Arndt Röhrig wrote: > Hi Ticker, > > mkgmap tell me: > > 6:33:39,37 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Error in style: Error: (inc/access:73): Error: Third parameter 'all' > of function is_in is not supported for this style section, valid are: > [in, in_or_on, on] > Could not open style > > > If i move the "is_in" command to the line file, mkgmap say: > > 6:30:43,78 - mkgmap .\tools\mkgmap-is-in-r4446 Speiche_Fabrik > java.lang.AssertionError: invoked the non-augmented instance > at > uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(IsInFun > ction.java:119) > at > uk.me.parabola.mkgmap.osmstyle.function.CachedFunction.value(CachedFu > nction.java:61) > at > uk.me.parabola.mkgmap.osmstyle.eval.EqualsOp.eval(EqualsOp.java:33) ... ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
[mkgmap-dev] Commit r4448: fix possible NPE introduced with r4432
Version mkgmap-r4448 was committed by gerd on Thu, 13 Feb 2020 fix possible NPE introduced with r4432 FileNotFoundException was ignored. May result in a NullPointerException when input file is not in the expected format. e.g. with java -jar mkgmap.jar . http://www.mkgmap.org.uk/websvn/revision.php?repname=mkgmap=4448 ___ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev