Skip to content

Querymap fails for polygon layers with labels only (no styles) #6262

@szekerest

Description

@szekerest

Currenly msDrawQueryLayer fails with the following error if the layer type is polygon, the querymap style is MS_HILITE, and the layer class contains only label elements.

msDrawMap(): Image handling error. Failed to draw layer named '...'.;msDrawQueryLayer(): General error message. Don't know how to draw class Class (0) of layer ... without a style definition.

The same setting works with the point and line layers (where the labels are being highlighted) so I guess it should also work with the polygon layers.

The corresponding code looks like this:

 if(layer->type == MS_LAYER_POLYGON) { /* alter BOTTOM style since that's almost always the fill */
        if (layer->class[i]->styles == NULL) {
          msSetError(MS_MISCERR, "Don't know how to draw class %s of layer %s without a style definition.", "msDrawQueryLayer()", layer->class[i]->name, layer->name);
          msFree(colorbuffer);
          msFree(mindistancebuffer);
          return(MS_FAILURE);
        }

however the classes with no styles can surely be handled later in the code:

} else if (layer->class[i]->numlabels > 0) {
          colorbuffer[i] = layer->class[i]->labels[0]->color;
          layer->class[i]->labels[0]->color = map->querymap.color;
      }

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions