hi, thanks allot! that is exactly what i did after another user suggested it ( Cristiano Sumariva ).
here it is for reference: CREATE OR REPLACE FUNCTION temp.ms_colorMath( percentile double precision ) RETURNS varchar LANGUAGE plpgsql AS $$ DECLARE C double precision; X double precision; m double precision; H int; V double precision; S double precision; R int; G int; B int; BEGIN --see here http://www.rapidtables.com/convert/color/hsv-to-rgb.htm --if H != 0 need to change the function --curently - red gradient S := percentile; IF (S < 0.1 AND S > 0) THEN S := 0.1; END IF; H := 0; V := 1.0; C := V * S; X := C * (1-abs(mod(H/60,2)-1)); m := V-C; R := ((C + m)*255 )::int; G := ((X + m)*255 )::int; B := ((0 + m)*255 )::int; RETURN (R)::text || ' ' || (G)::text || ' ' || (B)::text; END $$; On Thu, Jun 26, 2014 at 6:24 PM, Carlos Ruiz <[email protected]> wrote: > To achieve more flexibility as you want, you have to code a function with > PL/pgSQL in PostgreSQL or with PHP/Python/Java/C# with Mapscript to define > which is the base color (red, green, blue, yellow ...) and then to > calculate the percent in the right RGB channel. > > > Cheers > > Mtro. Carlos Ruiz > > -------------------------------------------- > On Mon, 6/23/14, Do Wi <[email protected]> wrote: > > Subject: Re: [mapserver-users] color attribute question > To: "Carlos Ruiz" <[email protected]> > Date: Monday, June 23, 2014, 2:56 PM > > thanks allot! > Steve and another user here mentioned this path > and it did work!only problem is that it cannot be > changed later if for example the user chooses a blue > gradient. > > how will i go about doing it with > mapscript? > maybe it relates to my question herehttp:// > gis.stackexchange.com/questions/102862/when-to-choose-mapscript-over-mapfile-or-vice-versa > > > :-) > thanks allot!dovi > > On Mon, Jun 23, 2014 > at 6:13 PM, Carlos Ruiz <[email protected]> > wrote: > > > Do, > If > you want to do this without using mapscript, you can pull > the gradient calculation as an attribute from your data > table. > > > ALTER TABLE mytable ADD COLUMN gradient_color > VARCHAR; > UPTATE mytable SET gradient_color = floor(gradient * > 255)::text || ' 0 0'; > > Cheers > > Mtro. Carlos Ruiz > > > > On Monday, June 23, 2014 4:59 PM, "Lime, Steve D > (MNIT)" <[email protected]> > wrote: > > > > > > You can compute a color > string using PostgreSQL string functions: > > SELECT percentage || > ‘ 0 0’ AS color FROM … > > Steve > > From: [email protected] > [mailto:[email protected]] > On Behalf Of Do Wi > > Sent: Sunday, June 22, 2014 3:50 PM > > To: [email protected] > > Subject: [mapserver-users] color attribute > question > > > hi! > > > > > i have this > scenario: > > > i have a column in my > postgis table which contains a double representing a > percentage. > > > > > > i want to color my > polygons in a gradient fashion based on that > number. > > > > > > the docs states three > ways to specify color: > > > 1. three [1-255] > numbers > > > 2. hex > string > > > 3. > [attribute] > > > > > > but the attribute must > be a string by itself in the same format as options 1 or > 2. > > > > > > how can i achieve > something like > > > > > > COLOR [percentage]*255 0 > 0 > > > or > > > COLOR [percentage] 0 > 0 > > > if percentageis already > 0..255 > > > > > > for a red gradient for > example? > > > > > > thanks > allot! > > > > > _______________________________________________ > mapserver-users mailing list > [email protected] > > http://lists.osgeo.org/mailman/listinfo/mapserver-users >
_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
