Hi!

> This would allow an object to be checked for the existence of a highway tag 
> (for example) exactly once

I'm not sure that it's the thing worth implementing.
All this stuff can be guessed by engine on stylesheet parse time,
considering you support "exit" statement. I still think it's a hack,
and for me (in both komap / kothic js) stylesheet gets compiled into
native python/js code, so it's fast anyway.

If you want to omit a lot of consecutive checks, you can make a
bitfield cache for the most popular rules. So, on parse time:

 - determine the most popular (8/16/32/64 - unsure of architecture)
rules, number these as 2^i;
 - for each {style} block in sheet, remove rules that went to cache
and add a single integer that will store a sum of cached rendering
rules numbers (say "style_rules");
 - on rendering time, as a first pass do all cached checks and store
in a single integer as a sum of passed checks (say "obj_rules");
 - later, on doing checks against each {} block, do a check for
((obj_rules AND style_rules) EQ style_rules).

kinda that. If you do decomposition right ([amenity=telephone] is two
rules, [amenity][amenity=telephime]), you'll gain some speeds without
bringing ugly non-css into mapcss, and even on stylesheets written not
in your way.

-- 
Darafei "Komяpa" Praliaskouski
OSM BY Team - http://openstreetmap.by/
xmpp:[email protected] mailto:[email protected]

_______________________________________________
Mapcss mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/mapcss

Reply via email to