You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2013-09-12 00:08:28

miramikes
Member
Registered: 2011-10-16
Posts: 128

Display minor contour in two steps

Hi,

I have contour created with step 10m, but I would like to display them in two steps:
just 20m 40m 60m 80m from resolution 22
and add 10m 30m 50m 70m 90m from resolution 23

This is my line for line for minor contour ... How to set conditions?
contour=elevation & contour_ext=elevation_minor            { name '${ele|conv:m=>ft}'; }            [0x20 resolution 22]

regards

mira

Offline

#2 2013-09-12 08:08:15

miramikes
Member
Registered: 2011-10-16
Posts: 128

Re: Display minor contour in two steps

miramikes wrote:

This is my line for line for minor contour ... How to set conditions?
contour=elevation & contour_ext=elevation_minor            { name '${ele|conv:m=>ft}'; }            [0x20 resolution 22]

I trying this:

contour=elevation & contour_ext=elevation_minor        & ele=(*10|*30|*50|*70|*90)    { name '${ele|conv:m=>ft}'; }            [0x20 resolution 23]
contour=elevation & contour_ext=elevation_minor        & ele=(*20|*40|*60|*80)        { name '${ele|conv:m=>ft}'; }            [0x20 resolution 22]

but getting error sad

Error in style: Error: (lines:336): Value '*' is not part of an expression

mira

Offline

#3 2013-09-12 08:14:22

aighes
Member
From: Shanghai
Registered: 2009-03-29
Posts: 5,383
Website

Re: Display minor contour in two steps

You have to split it into several rules.

Try the following:

contour=elevation & contour_ext=elevation_minor { name '${ele|conv:m=>ft}'; }
contour=elevation & contour_ext=elevation_minor & name ~'.*[2468]0' [0x20 resolution 22]
contour=elevation & contour_ext=elevation_minor & name ~'.*[13579]0' [0x20 resolution 23]

EDIT: added the missing '.'

Last edited by aighes (2013-09-15 09:28:07)


Viele Grüße
Henning

Offline

#4 2013-09-12 08:16:01

aighes
Member
From: Shanghai
Registered: 2009-03-29
Posts: 5,383
Website

Re: Display minor contour in two steps

miramikes wrote:

ele=(*10|*30|*50|*70|*90)

You would have to write:

ele ~'*10' | ele ~'*30' ...and so on...

Last edited by aighes (2013-09-12 08:16:14)


Viele Grüße
Henning

Offline

#5 2013-09-12 08:21:32

miramikes
Member
Registered: 2011-10-16
Posts: 128

Re: Display minor contour in two steps

aighes wrote:

You have to split it into several rules.

Try the following:

contour=elevation & contour_ext=elevation_minor { name '${ele|conv:m=>ft}'; }
contour=elevation & contour_ext=elevation_minor & name ~'*[2468]0' [0x20 resolution 22]
contour=elevation & contour_ext=elevation_minor & name ~'*[13579]0' [0x20 resolution 23]

What kind of black magic? wink
Unfortunately error sad

java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
*[2468]0
^
    at java.util.regex.Pattern.error(Pattern.java:1730)
    at java.util.regex.Pattern.sequence(Pattern.java:1895)
    at java.util.regex.Pattern.expr(Pattern.java:1769)
    at java.util.regex.Pattern.compile(Pattern.java:1477)
    at java.util.regex.Pattern.<init>(Pattern.java:1150)
    at java.util.regex.Pattern.compile(Pattern.java:840)
    at uk.me.parabola.mkgmap.osmstyle.eval.RegexOp.setSecond(RegexOp.java:51)
    at uk.me.parabola.mkgmap.osmstyle.eval.ExpressionReader.runOp(ExpressionReader.java:158)
    at uk.me.parabola.mkgmap.osmstyle.eval.ExpressionReader.readConditions(ExpressionReader.java:63)
    at uk.me.parabola.mkgmap.osmstyle.RuleFileReader.load(RuleFileReader.java:112)
    at uk.me.parabola.mkgmap.osmstyle.RuleFileReader.load(RuleFileReader.java:92)
    at uk.me.parabola.mkgmap.osmstyle.StyleImpl.readRules(StyleImpl.java:310)
    at uk.me.parabola.mkgmap.osmstyle.StyleImpl.<init>(StyleImpl.java:160)
    at uk.me.parabola.mkgmap.osmstyle.StyleImpl.readStyle(StyleImpl.java:551)
    at uk.me.parabola.mkgmap.reader.osm.RelationStyleHook.init(RelationStyleHook.java:33)
    at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.pluginChain(OsmMapDataSource.java:185)
    at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.setupHandler(OsmMapDataSource.java:153)
    at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinMapDataSource.load(OsmBinMapDataSource.java:49)
    at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSource.java:127)
    at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:167)
    at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:63)
    at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:243)
    at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:239)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)

Offline

#6 2013-09-12 09:12:24

miramikes
Member
Registered: 2011-10-16
Posts: 128

Re: Display minor contour in two steps

aighes wrote:
miramikes wrote:

ele=(*10|*30|*50|*70|*90)

You would have to write:

ele ~'*10' | ele ~'*30' ...and so on...

Oh ... I will try this in evening ... Thank you

mira

Last edited by miramikes (2013-09-12 09:12:39)

Offline

#7 2013-09-12 16:01:02

popej
Member
Registered: 2008-09-20
Posts: 500
Website

Re: Display minor contour in two steps

Shouldn't be a '.' in regular expression?

contour=elevation & contour_ext=elevation_minor & name ~'.*[2468]0' { name '${ele|conv:m=>ft}'; } [0x20 resolution 22]
contour=elevation & contour_ext=elevation_minor { name '${ele|conv:m=>ft}'; }[0x20 resolution 23]


popej

Offline

#8 2013-09-12 23:14:00

miramikes
Member
Registered: 2011-10-16
Posts: 128

Re: Display minor contour in two steps

Hi,

this works for me wink

contour=elevation & contour_ext=elevation_minor & (ele ~'.*10' | ele ~'.*30' | ele ~'.*50' | ele ~'.*70' | ele ~'.*90') { name '${ele|conv:m=>ft}'; } [0x20 resolution 24]
contour=elevation & contour_ext=elevation_minor & (ele ~'.*20' | ele ~'.*40' | ele ~'.*60' | ele ~'.*80')         { name '${ele|conv:m=>ft}'; } [0x20 resolution 22]

Thank you all !

mira

Offline

#9 2013-09-14 05:24:14

extremecarver
Member
Registered: 2008-09-18
Posts: 440
Website

Re: Display minor contour in two steps

... & (ele=*10 | ele=*30 | ele=*50 | ele=*70 | ele=*90) ... would have done the job as well.


OSM Maps for Mtbikers and Hikers, OSM Karten fuer Mtbiker und Wanderer --> http://openmtbmap.org
OSM Maps for racing and casual cycling - für Rennradfahrer und Freizeitradfahrer --> http://www.velomap.org

Offline

#10 2013-09-15 09:27:09

aighes
Member
From: Shanghai
Registered: 2009-03-29
Posts: 5,383
Website

Re: Display minor contour in two steps

popej wrote:

Shouldn't be a '.' in regular expression?

Jep, I've forgotten the dot....shame on me. wink


Viele Grüße
Henning

Offline

Board footer

Powered by FluxBB