Pre-RFC, pulling rendering/labeling parameters from attributes...

Stephen Woodbridge woodbri at SWOODBRIDGE.COM
Tue Jun 6 21:55:01 EDT 2006


Frank Warmerdam wrote:
> Stephen Woodbridge wrote:
>> Ok, glad I read this one before posting the exact same thing! only I 
>> would have done my example like:
>>
>>  SIZE [sizeattribute]
>>  ANGLE ([angleattribute] - 90.0)
>>  LABEL
>>   TEXT ("Label: " . [labelattribute] . ".")
>>  END
>>
>> This would require a lot of changes, but could be fully backwards 
>> compatible.
> 
> SteveW,
> 
> I assume part of the benefit here is that we can use the same substitution
> engine used for expressions?  (and I guess actually evaluating in the
> expressions in the ANGLE case above).
> 
> I certainly like this degree of generality, though internally I would like
> to see a fixed value and possibly a simple variable substitution handled
> via some sort of short cut to reduce the amount of expression processing 
> for
> each feature.  I would hate to have ANGLE 0 result in a full expression 
> parse
> and evaluation for each feature.
> 
> Best regards,

Frank,

I like the generalization, but I agree in the need for not using the 
expression evaluation if you don't need to. For example:

ANGLE 0
ANGLE [angleattribute]

Would not need expression evaluation, but any clause starting with "(" 
would be assumed to be an expression. I could live without the 
expressions but I think they are handy for a lot of simple or low volume 
sites.

I guess what I would like to see is a generalized attribute substitution 
for any single value that can be placed in a layer definition. This 
would imply that you would need three columns for COLOR [R] [G] [B], 
although it might be made smart enough to recognize COLOR 
[colorattribute] as a string and parse it.

Steve have you given any thought into URL parameter substitution and how 
it might or might not play with this. For example:

ANGLE %angle%
ANGLE [%angleattribute%]

So all values can be either:

constant
%parameter%
[attribute]
[%parameter%]
(expression)

where expression may/may not contain any of the items above. OK, this is 
getting into the grand unification theory of variable substitution :)

-Steve



More information about the mapserver-dev mailing list