[mapserver-users] changing the color of a line

Andy Colson andy at squeakycode.net
Fri Feb 19 06:57:30 PST 2010


You can try this:

http://mapserver.org/ogc/sld.html

Like I said, I've never used it, have no idea if it'll work.

-Andy



On 2/19/2010 1:41 AM, ahmettemiz88 at gmail.com wrote:
> thank you
>
> Actually, I want to change color of contour map according to
> another map that lies beneath of contour map. Otherwise
> contours cannot be discerned.
>
> So, it' type is line.
>
> And I thought I might be able to change its color using
>
> "layer.updateFromString("COLOR 245 13 60");"
>
> but it failed.
>
> what might the alternative solutions be ?
>
> regards
>
> tarihinde, Andy Colson <andy at squeakycode.net> şunu yazdı:
>  > On 2/18/2010 1:35 PM, ahmet temiz wrote:
>  >
>  >
>  > hello
>  >
>  >
>  >
>  > how can I change the color of a line programmatically in mapscript
> environment
>  >
>  > (preferably in java)
>  >
>  >
>  >
>  > regards
>  >
>  >
>  >
>  >
>  > I think we need a little more info.  Is this line inside a layer...
> of type LINE?  Is the layer type POLYGON and you want to change one line
> of one polygon?  Is the line the only thing in the layer?  If there are
> lots of lines in the layer, do you know how to find the one you want?
>  >
>  >
>  >
>  > As an example, which may not be helpful... I have perl mapscript that
> highlights a polygon.
>  >
>  >
>  >
>  > In my mapfile I created a new, empty layer named annotate_pin, with
> coloring defined (green in my case).  I do sql on my PostGIS database to
> find the polygon I want to "highlight".  I copy the polygon from the
> "parcels" layer into the "annotate_pin" layer.
>  >
>  >
>  >
>  > my $layer = $map->getLayerByName('parcels');
>  >
>  > $layer->open();
>  >
>  >
>  >
>  > #newlayer is misnamed... it does exist in the .map file
>  >
>  > my $newlayer = $map->getLayerByName('annotate_pin');
>  >
>  > $newlayer->{status} = $mapscript::MS_ON;
>  >
>  >
>  >
>  > # sid here is set to the shape I want to copy/highlight
>  >
>  > $db->pg_result();
>  >
>  > ($sid) = $q->fetchrow_array;
>  >
>  >
>  >
>  > # get the shape
>  >
>  > my $shp = $layer->getFeature($sid);
>  >
>  > $layer->close();
>  >
>  > if (!$shp)
>  >
>  > {
>  >
>  >        print STDERR "---- cannot getFeature($sid) ----\n";
>  >
>  > }
>  >
>  >
>  >
>  > #copy it to a new shape
>  >
>  > my $shape = $shp->clone();
>  >
>  >
>  >
>  > #add new shape into the annotate_pin layer
>  >
>  > $newlayer->addFeature($shape);
>  >
>  >
>  >
>  > ... later we draw with $map, which has one polygon in the
> annotate_pin layer.
>  >
>  >
>  >
>  > Note that this is one way, there is the new styling options, but it's
> all xml and I cant stand xml, so I never even looked at it.  Not sure if
> this is at all what you were looking for, but hope it helps.
>  >
>  >
>  >
>  > -Andy
>  >




More information about the MapServer-users mailing list