[mapserver-users] changing the color of a line

Andy Colson andy at squeakycode.net
Thu Feb 18 14:52:38 EST 2010


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