[Mapserver-users] Selected features color

Stepan Kafka stepan.kafka at centrum.cz
Mon Feb 9 05:30:55 EST 2004


This is a multi-part message in MIME format.

------=_NextPart_000_000A_01C3EF00.2EA8F8D0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Steve and others,
  in mapserver 4.0.1 I found highlight color being applied only for last
class style. I changed the msDrawQueryLayer function to highlight the FIRST
style for polygons style because it is always polygon fill color. In
addition I think it is useful to enable highlight also originally
transparent color fills like in the attached picture correpodning with
following class definition:

  class
    style
      color -1 -1 -1
      symbol "p-diagl"
      size 8
    end
    style
      outlinecolor 0 100 0
      symbol "l-solid"
      size 2
      maxsize 4
    end
  class

If it is useful, please, change it in official distribution. The changed
function code is attached. ( I have also version with highlihgting all
styles but when using solid fills the outlines are not seen.)

Stepan Kafka

------=_NextPart_000_000A_01C3EF00.2EA8F8D0
Content-Type: image/png;
	name="fill.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="fill.png"

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

------=_NextPart_000_000A_01C3EF00.2EA8F8D0
Content-Type: text/plain;
	name="msDrawQueryLayer.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="msDrawQueryLayer.txt"

int msDrawQueryLayer(mapObj *map, layerObj *layer, imageObj *image)
{
  int i, status;
  char annotate=3DMS_TRUE, cache=3DMS_FALSE;
  shapeObj shape;
  int maxnumstyles=3D1;

  featureListNodeObjPtr shpcache=3DNULL, current=3DNULL;

  colorObj colorbuffer[MS_MAXCLASSES];

  if(!layer->resultcache || map->querymap.style =3D=3D MS_NORMAL)
    return(msDrawLayer(map, layer, image));

  if(!layer->data && !layer->tileindex && !layer->connection && =
!layer->features)=20
   return(MS_SUCCESS); // no data associated with this layer, not an =
error since layer may be used as a template from MapScript

  if(layer->type =3D=3D MS_LAYER_QUERY) return(MS_SUCCESS); // query =
only layers simply can't be drawn, not an error

  if(map->querymap.style =3D=3D MS_HILITE) { // first, draw normally, =
but don't return
    status =3D msDrawLayer(map, layer, image);
    if(status !=3D MS_SUCCESS) return(MS_FAILURE); // oops
  }

  if((layer->status !=3D MS_ON) && (layer->status !=3D MS_DEFAULT)) =
return(MS_SUCCESS);

  if(msEvalContext(map, layer->requires) =3D=3D MS_FALSE) =
return(MS_SUCCESS);
  annotate =3D msEvalContext(map, layer->labelrequires);

  if(map->scale > 0) {
    if((layer->maxscale > 0) && (map->scale > layer->maxscale)) =
return(MS_SUCCESS);
    if((layer->minscale > 0) && (map->scale <=3D layer->minscale)) =
return(MS_SUCCESS);

    if((layer->labelmaxscale !=3D -1) && (map->scale >=3D =
layer->labelmaxscale)) annotate =3D MS_FALSE;
    if((layer->labelminscale !=3D -1) && (map->scale < =
layer->labelminscale)) annotate =3D MS_FALSE;
  }

  // reset layer pen values just in case the map has been previously =
processed
  msClearLayerPenValues(layer);

  // if MS_HILITE, alter the first class (always at least 1 class) - =
kafka - zmenit logiku highlight
  if(map->querymap.style =3D=3D MS_HILITE) {
    for(i=3D0; i<layer->numclasses; i++) {
		if(layer->type =3D=3D MS_LAYER_POLYGON){ //for polygon layers the =
first style is highlighted
			colorbuffer[i] =3D layer->class[i].styles[0].color;=20
			layer->class[i].styles[0].color =3D map->querymap.color;
		}
		else=20
		{
			=
if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].col=
or)) {
				colorbuffer[i] =3D =
layer->class[i].styles[layer->class[i].numstyles-1].color; // save the =
color from the TOP style
				layer->class[i].styles[layer->class[i].numstyles-1].color =3D =
map->querymap.color;
			}
		=20
			else =
if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].out=
linecolor)) {
				colorbuffer[i] =3D =
layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor; // if =
no color, save the outlinecolor from the TOP style
				layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor =3D =
map->querymap.color;

			}
		}
    }
  }

  // open this layer
  status =3D msLayerOpen(layer);
  if(status !=3D MS_SUCCESS) return(MS_FAILURE);

  // build item list
  status =3D msLayerWhichItems(layer, MS_FALSE, annotate, NULL); // FIX: =
results have already been classified (this may change)
  if(status !=3D MS_SUCCESS) return(MS_FAILURE);

  msInitShape(&shape);

  for(i=3D0; i<layer->resultcache->numresults; i++) {
    status =3D msLayerGetShape(layer, &shape, =
layer->resultcache->results[i].tileindex, =
layer->resultcache->results[i].shapeindex);
    if(status !=3D MS_SUCCESS) return(MS_FAILURE);

    shape.classindex =3D layer->resultcache->results[i].classindex;
    if(layer->class[shape.classindex].status =3D=3D MS_OFF) {
      msFreeShape(&shape);
      continue;
    }

    cache =3D MS_FALSE;
    if(layer->type =3D=3D MS_LAYER_LINE && =
layer->class[shape.classindex].numstyles > 1)=20
      cache =3D MS_TRUE; // only line layers with multiple styles need =
be cached (I don't think POLYLINE layers need caching - SDL)

    if(annotate && (layer->class[shape.classindex].text.string || =
layer->labelitem) && layer->class[shape.classindex].label.size !=3D -1)
      shape.text =3D msShapeGetAnnotation(layer, &shape);

    if(cache)
      status =3D msDrawShape(map, layer, &shape, image, 0); // draw only =
the first style
    else
      status =3D msDrawShape(map, layer, &shape, image, -1); // all =
styles=20
    if(status !=3D MS_SUCCESS) {
      msLayerClose(layer);
      return MS_FAILURE;
    }

    if(shape.numlines =3D=3D 0) { // once clipped the shape didn't need =
to be drawn
      msFreeShape(&shape);
      continue;
    }

    if(cache) {
      if(insertFeatureList(&shpcache, &shape) =3D=3D NULL) =
return(MS_FAILURE); // problem adding to the cache
    }

    maxnumstyles =3D MS_MAX(maxnumstyles, =
layer->class[shape.classindex].numstyles);
    msFreeShape(&shape);
  }

  if(shpcache) {
    int s;
 =20
    for(s=3D1; s<maxnumstyles; s++) {
      for(current=3Dshpcache; current; current=3Dcurrent->next) {        =

        if(layer->class[current->shape.classindex].numstyles > s)
	  msDrawLineSymbol(&map->symbolset, image, &current->shape, =
&(layer->class[current->shape.classindex].styles[s]), =
layer->scalefactor);
      }
    }
   =20
    freeFeatureList(shpcache);
    shpcache =3D NULL; =20
  }

  // if MS_HILITE, restore values
  if(map->querymap.style =3D=3D MS_HILITE) {
    for(i=3D0; i<layer->numclasses; i++) {
	  if(layer->type =3D=3D MS_LAYER_POLYGON)
	    layer->class[i].styles[0].color =3D colorbuffer[i];
	=09
	  else
	  {
	  =
if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].col=
or))
		layer->class[i].styles[layer->class[i].numstyles-1].color =3D =
colorbuffer[i];       =20
	  else =
if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].out=
linecolor))
		layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor =3D =
colorbuffer[i]; // if no color, restore outlinecolor for the TOP style
   =20
	  }
	}
  }

  msLayerClose(layer);

  return(MS_SUCCESS);
}

------=_NextPart_000_000A_01C3EF00.2EA8F8D0--




More information about the mapserver-users mailing list