[mkgmap-dev] line rule not being triggered
From Gerd Petermann gpetermann_muenchen at hotmail.com on Sun Feb 25 07:11:12 GMT 2018
Hi, the problem is in the ExpressionArranger, it changes the order of the terms in man_made=* & is_closed()=true {add area=yes; echotags 'mm'} to is_closed()=true & man_made=* {add area=yes; echotags 'mm'} and thus creates an invalid input for the RuleIndex. Attached patch fixes this problem, but I think we should add more code in ExpressionArranger to make sure that it never produces such an invalid input. @Steve: I think ExpressionArranger should call isSolved() and stop if that returns false. In that case it would be great to print an error message that shows the original expression and the file and line number of the rule file. When we add a check in RuleIndex we can only print the re-arranged rule and that will only confuse the user. BTW: Maybe we can also change the code so that is_closed() is indexable? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen at hotmail.com> Gesendet: Samstag, 24. Februar 2018 18:41:59 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] line rule not being triggered Hi Ticker, I can reproduce the error with other style functions as well. This pattern seems not to work: a=* & style_func()=val {...} This works fine a=* & style_func()!=val {...} or a=* & style_func()>val {...} @Steve: I assume that the problem is in the rule optimizer? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap at jagit.co.uk> Gesendet: Samstag, 24. Februar 2018 13:36:26 An: mkgmap development Betreff: [mkgmap-dev] line rule not being triggered Hi I noticed that the default style was putting walkways around some piers because of the line rule: (man_made=pier | man_made=piste:halfpipe) & area!=yes {add highway=footway; name '${ref} ${name}' | '${ref}' | '${name}' } an example is: WAY: 469580183 (50.73379039764404/-1.2820744514465332) [man_made=pier, mkgmap:admin_level10=Whippingham, mkgmap:admin_level2=GBR, mkgmap:admin_level4=England, mkgmap:admin_level5=South East, mkgmap:admin_level6=Isle of Wight, name=Folly Pier] which is using a closed way to draw the pier (and also has a defined footpath along it) Earlier on in my lines file I have: # mark multipolygons as area mkgmap:mp_created=true {add area=yes} highway=* & area!=* & is_closed()=true {echotags 'closed() highway'; add area=yes} and so added the following to fix the problem: man_made=* & is_closed()=true {add area=yes; echotags 'mm'} but this rule isn't being triggered by my example, but if I replace it with: name="Folly Pier" & is_closed()=true {add area=yes; echotags 'fp'} Then it behaves as expected I'm using the latest svn trunk (4127) Any ideas? Thanks Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev at lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev at lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev -------------- next part -------------- A non-text attachment was scrubbed... Name: expr-arranger.patch Type: application/octet-stream Size: 1762 bytes Desc: expr-arranger.patch URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20180225/b2e7d656/attachment.obj>
- Previous message: [mkgmap-dev] line rule not being triggered
- Next message: [mkgmap-dev] line rule not being triggered
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list