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