logo separator

[mkgmap-dev] natural=wetland; why is ~ disallowed at top level?

From Marko Mäkelä marko.makela at iki.fi on Sun Jan 17 20:06:01 GMT 2010

Hi Steve,

> It doesn't work like that, so we don't do multiple hash lookups and
> equality comparisons for each rule.
> 
> We go through the tags and look each one up, based
> on an index consisting of the tag and value.  So all rules that could
> be matched by say natural=mud are indexed by the string 'natural=mud'
> 
> So if an element has the tag natural=mud then we find the [0x51 ...]
> directly without looking at natural=marsh or natural=wetland or doing
> any other comparison.

Thank you for clarifying that.  I have some more questions:

1. What if there are multiple actions for natural=mud?
Which one(s) will be processed and in which order?

2. How and when are top-level AND expressions evaluated?

3. Why doesn't RuleFileReader.optimiseAndSaveBinaryOp() check for 
second.isType(EXISTS)?  Why doesn't it attempt to swap operands when
first.isType(NOT_EXISTS)?

I committed a non-functional change to RuleFileReader, making
optimiseAndSaveBinaryOp take a BinaryOp parameter.

	Marko



More information about the mkgmap-dev mailing list