<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi Mark,<br><br>with the correct syntax:<br># remove characters a to z and A to Z from ref, e.g. "I 80" -&gt; " 80", "Anna Bob 99 TED" -&gt; "&nbsp; 99 "<br>ref=* {set my_ref='${ref|subst:"[a-zA-Z]*~&gt;"}'}<br>highway=motorway { name '${my_ref|highway-symbol:hbox} ${name}' | '${my_ref|highway-symbol:hbox}' | '${name}' }<br><br>Gerd<br><br><div>&gt; Date: Fri, 2 Jan 2015 21:11:24 -0700<br>&gt; From: gpetermann_muenchen@hotmail.com<br>&gt; To: mkgmap-dev@lists.mkgmap.org.uk<br>&gt; Subject: Re: [mkgmap-dev] How to display highway shields with numbers only<br>&gt; <br>&gt; Hi Mark,<br>&gt; <br>&gt; okay, so your problem is not directly related to the highway symbols.<br>&gt; What you need is a simple filter to return the part of a string which<br>&gt; starts at the first digit. I guess this can be done with subst plus a<br>&gt; regular expression,<br>&gt; but I'm not sure how exactly.<br>&gt; Something like<br>&gt; ref=* {set my_ref = ${ref|subst:"[a-zA-Z]*~&gt;"}<br>&gt; <br>&gt; <br>&gt; Gerd<br>&gt; <br>&gt; <br>&gt; Mark Bradley-2 wrote<br>&gt; &gt; Thanks for responding Gerd.  Yes, I experimented with the Substring<br>&gt; &gt; filter,<br>&gt; &gt; just as you suggested.  But because the number of characters in the ref<br>&gt; &gt; tag<br>&gt; &gt; varies, I could not figure out how to make it work for all cases.  I'll<br>&gt; &gt; keep<br>&gt; &gt; working on it.<br>&gt; &gt; <br>&gt; &gt; Mark<br>&gt; &gt; <br>&gt; &gt; ________________________________________<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; Hi Mark,<br>&gt; &gt; <br>&gt; &gt; this simple change in default/lines seems to work for me (in MapSource): <br>&gt; &gt; <br>&gt; &gt; ref=* {set my_ref='${ref | substring:2}''}<br>&gt; &gt; highway=motorway { name '${my_ref|highway-symbol:hbox} ${name}' |<br>&gt; &gt; '${my_ref|highway-symbol:hbox}' | '${name}' }<br>&gt; &gt; <br>&gt; &gt; Without it I see "A1", with it I see just "1" in the shield.<br>&gt; &gt; There is more to do catch all cases for different types of highways and<br>&gt; &gt; those without a ref.<br>&gt; &gt; <br>&gt; &gt; Gerd<br>&gt; &gt; ________________________________________<br>&gt; &gt; From: <br>&gt; <br>&gt; &gt; ethnicfoodisgreat@<br>&gt; <br>&gt; &gt; To: <br>&gt; <br>&gt; &gt; mkgmap-dev@.org<br>&gt; <br>&gt; &gt; Date: Thu, 1 Jan 2015 08:49:01 -0500<br>&gt; &gt; Subject: [mkgmap-dev] How to display highway shields with numbers only<br>&gt; &gt; Hi list members,<br>&gt; &gt;  <br>&gt; &gt; A few weeks ago I proposed the following problem.  I did not receive any<br>&gt; &gt; help, so I will ask again, in case any of you can shed some light.<br>&gt; &gt;  <br>&gt; &gt; Table 4.4 in the Conversion Style Manual shows highway shields displaying<br>&gt; &gt; numbers only, which is what I would like to achieve.  In Table 4.3 (the<br>&gt; &gt; list<br>&gt; &gt; of substitution filters), the description for the highway-symbol filter<br>&gt; &gt; says<br>&gt; &gt; that the filer "Prepares the value as a highway reference such as 'A21'<br>&gt; &gt; 'I-80' and so on.  A code is added to the front of the string so that a<br>&gt; &gt; highway shield is displayed, spaces are removed and the text is truncated<br>&gt; &gt; so<br>&gt; &gt; as not to overflow the symbol."  The description does not explain (from<br>&gt; &gt; what<br>&gt; &gt; I can tell) how to remove the alphabetic characters, leaving only the<br>&gt; &gt; numbers.  I've tried several possibilities of the filter without success.<br>&gt; &gt; Where I live, there's a motorway called Interstate 70 which is labeled<br>&gt; &gt; "I70"<br>&gt; &gt; in OSM.  I would like to create shields with only the number in the<br>&gt; &gt; shields,<br>&gt; &gt; similar to the example in Table 4.4.  How do I do this?<br>&gt; &gt;  <br>&gt; &gt; To add a little more information:  The description in Table 4.4 for each<br>&gt; &gt; of<br>&gt; &gt; the first three symbols says "digits only."  If I apply the substitution<br>&gt; &gt; filter to the ref values as is, the symbols on the resulting map do NOT<br>&gt; &gt; contain digits only, they also include the alpha characters in front of<br>&gt; &gt; the<br>&gt; &gt; numbers that describe what type of highway the highway is, such as "I" for<br>&gt; &gt; interstate or "SR" for state road.  Based on this, I have to conclude that<br>&gt; &gt; it is up to the mapper to strip off these alpha characters first, before<br>&gt; &gt; applying the highway symbol filter.  Again, I have tried numerous<br>&gt; &gt; combinations of the style filters and commands without success.  The<br>&gt; &gt; problem<br>&gt; &gt; is that the number of alpha characters preceding the digits can vary.<br>&gt; &gt; Sometimes there are no alpha characters at all.  I know how to add "dummy"<br>&gt; &gt; spaces to the ref tag for those features that don't have a ref value at<br>&gt; &gt; all,<br>&gt; &gt; but how to strip the alpha characters when the number of characters can<br>&gt; &gt; vary, and the separator character is a space?<br>&gt; &gt;  <br>&gt; &gt; I would've thought this would be a common desire for users in the U. S.<br>&gt; &gt; and<br>&gt; &gt; that it would've been solved a long time ago.  Maybe not?<br>&gt; &gt;  <br>&gt; &gt; Mark<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; _______________________________________________<br>&gt; &gt; mkgmap-dev mailing list<br>&gt; <br>&gt; &gt; mkgmap-dev@.org<br>&gt; <br>&gt; &gt; http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; --<br>&gt; View this message in context: http://gis.19327.n5.nabble.com/How-to-display-highway-shields-with-numbers-only-tp5828816p5828820.html<br>&gt; Sent from the Mkgmap Development mailing list archive at Nabble.com.<br>&gt; _______________________________________________<br>&gt; mkgmap-dev mailing list<br>&gt; mkgmap-dev@lists.mkgmap.org.uk<br>&gt; http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br></div>                                               </div></body>
</html>