[OSRM-talk] further simplifying profiles
Jens Thiele
karme at karme.de
Tue Jun 18 08:59:27 UTC 2013
Emil Tin <ZF0F at tmf.kk.dk> writes:
> I don't recall osm using empty tags anywhere.
> But would it not be simpler to use null rather than empty strings, so you can use
>
> if( highway )
>
> rather than
>
> if( highway ~= "" )
is your suggestion to return nil instead of an empty string?
something like:
tag = function(x) local r=way.tags:Find(x); if r=="" then return nil
else return r end; end
?
lua transcript:
,----
| > way=fakeway(10,{foo="",bar="10"})
| > tag = function(x) local r=way.tags:Find(x); if r=="" then return nil else return r end; end
| > print(tag("foo"))
| nil
| > print(tag("bar"))
| 10
`----
it depends
in the bike profile there are many places like this:
if (not highway or highway == '')
if i understand your suggestion correctly this would get:
if (not highway)
=> good
the other common pattern is usage of the tag value as table key:
if railway and platform_speeds[railway] then
note: nil is no valid key but the empty string is
hmm - maybe returning false instead of nil and empty string would be nice:
lua transcript:
,----
| > tag = function(x) local r=way.tags:Find(x); return r~="" and r end
| > print(tag("bar"))
| 10
| > print(tag("foo"))
| false
| > print(tag("inexistent"))
| false
| > x={}
| > print(x[tag("inexistent")])
| nil
`----
More information about the OSRM-talk
mailing list