Re-thinking RFC 6

Steve Lime Steve.Lime at DNR.STATE.MN.US
Fri Jun 15 01:09:48 EDT 2007


I agree on the naming. Will have to ponder that. I'd like an syntax that would accommodate colors and numbers in the same way:

  PARAMETERLIMITS #FFFFFF #FF0000 or PARAMETERRANGE 1 10

(we can handle that in mapfile.c) and then 

  ITEMLIMITS 1000.0 50000.0
   
or something like that.

The machinery is very similar to that of RFC 19, you just use a msBindLayerToRange function that works just like msBindLayerToShape (same parameters even). Most of the plumbing is in maputil.c already, as is the original range code Bill Binko wrote.

Steve

>>> Frank Warmerdam <warmerdam at POBOX.COM> 06/14/07 11:18 PM >>>
Steve Lime wrote:
> Hi guys: As the deadline for RFC's approaches I wanted to float a change to RFC 6 that might be doable by 5.0. I've not spent time updating the RFC yet. The idea would be to bind properties to ranges much like RFC 19. We'd extend the range concept to  colors, sizes and angles. So COLORRANGE would become RANGE. RANGEs would live at the layer level and would be referenced by name so you could have several.
> 
> A range would be defined as:
> 
> typedef struct {
>   char *name;
>   attributeBindingObj item; /* holds name and index */
>   colorObj mincolor, maxcolor; /* only colorObj's and numbers make sense */
>   double minnumber, maxnumber;
>   double minvalue, maxvalue;
>   int intervals;
>   int method; /* should be enum - MS_RANGE_METHOD */
> } rangeObj;
> 
> and a layer would have an array (fixed size, might be ok, should need more than a couple, or dynamic) of these.
> 
> Styles properties (color, outlinecolor, size, angle) could then reference these by name.
> 
> e.g.
> 
> LAYER
>   NAME 'myLayer'
>   ...
>   RANGE
>     NAME 'sizeRange'
>     ITEM 'sizeitem'
>     MINNUMBER 1
>     MAXNUMBER 10
>     MINVALUE 1000.0
>     MAXVALUE 500000.0
>   END

Steve,

I sort of like this approach though it seems like substantial
machinery might be needed to support it.

I also really think that you need to make it more clear what are
input values and what are output values. Perhaps min_in_val,
max_in_val, min_out_scalar, max_out_scalar.  For me "value" and
"number" are too general to work out which is input and output
of the function.

Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | President OSGeo, http://osgeo.org



More information about the mapserver-dev mailing list