Changeset 5592


Ignore:
Timestamp:
Aug 14, 2006, 10:01:54 PM (18 years ago)
Author:
sdlime
Message:

Fixed a couple of query map bugs, 1858 that alters which style is re-colored with POLYGON layers, msDrawQueryMap now respects layer order.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapserver/mapdraw.c

    r5426 r5592  
    2828 *
    2929 * $Log$
     30 * Revision 1.106  2006/08/15 05:01:54  sdlime
     31 * Fixed a couple of query map bugs, 1858 that alters which style is re-colored with POLYGON layers, msDrawQueryMap now respects layer order.
     32 *
    3033 * Revision 1.105  2006/05/08 17:41:04  frank
    3134 * fixed layer debug time reporting
     
    731734
    732735  for(i=0; i<map->numlayers; i++) {
    733     lp = &(map->layers[i]);
     736    lp = &(map->layers[ map->layerorder[i]]);
    734737
    735738    if(lp->postlabelcache) /* wait to draw */
     
    750753
    751754  for(i=0; i<map->numlayers; i++) { /* for each layer, check for postlabelcache layers */
    752     lp = &(map->layers[i]);
     755    lp = &(map->layers[ map->layerorder[i]]);
    753756
    754757    if(!lp->postlabelcache)
     
    11161119  msClearLayerPenValues(layer);
    11171120
    1118   /* if MS_HILITE, alter the first class (always at least 1 class), and set a MINDISTANCE for the labelObj to avoid duplicates */
     1121  /* if MS_HILITE, alter the one style (always at least 1 style), and set a MINDISTANCE for the labelObj to avoid duplicates */
    11191122  if(map->querymap.style == MS_HILITE) {
    11201123    for(i=0; i<layer->numclasses; i++) {
    1121       if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].color)) {
    1122         colorbuffer[i] = layer->class[i].styles[layer->class[i].numstyles-1].color; /* save the color from the TOP style */
    1123         layer->class[i].styles[layer->class[i].numstyles-1].color = map->querymap.color;
    1124       } else if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor)) {
    1125         colorbuffer[i] = layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor; /* if no color, save the outlinecolor from the TOP style */
    1126         layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor = map->querymap.color;
     1124      if(layer->type == MS_LAYER_POLYGON) { /* alter BOTTOM style since that's almost always the fill */
     1125        if(MS_VALID_COLOR(layer->class[i].styles[0].color)) {
     1126          colorbuffer[i] = layer->class[i].styles[0].color; /* save the color from the BOTTOM style */
     1127          layer->class[i].styles[0].color = map->querymap.color;
     1128        } else if(MS_VALID_COLOR(layer->class[i].styles[0].outlinecolor)) {
     1129          colorbuffer[i] = layer->class[i].styles[0].outlinecolor; /* if no color, save the outlinecolor from the BOTTOM style */
     1130          layer->class[i].styles[0].outlinecolor = map->querymap.color;
     1131        }
     1132      } else {
     1133        if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].color)) {
     1134          colorbuffer[i] = layer->class[i].styles[layer->class[i].numstyles-1].color; /* save the color from the TOP style */
     1135          layer->class[i].styles[layer->class[i].numstyles-1].color = map->querymap.color;
     1136        } else if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor)) {
     1137          colorbuffer[i] = layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor; /* if no color, save the outlinecolor from the TOP style */
     1138          layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor = map->querymap.color;
     1139        }
    11271140      }
    11281141
     
    12071220  if(map->querymap.style == MS_HILITE) {
    12081221    for(i=0; i<layer->numclasses; i++) {
    1209       if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].color))
    1210         layer->class[i].styles[layer->class[i].numstyles-1].color = colorbuffer[i];       
    1211       else if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor))
    1212         layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor = colorbuffer[i]; /* if no color, restore outlinecolor for the TOP style */
     1222      if(layer->type == MS_LAYER_POLYGON) {
     1223        if(MS_VALID_COLOR(layer->class[i].styles[0].color))
     1224          layer->class[i].styles[0].color = colorbuffer[i];
     1225        else if(MS_VALID_COLOR(layer->class[i].styles[0].outlinecolor))
     1226          layer->class[i].styles[0].outlinecolor = colorbuffer[i]; /* if no color, restore outlinecolor for the BOTTOM style */
     1227      } else {
     1228        if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].color))
     1229          layer->class[i].styles[layer->class[i].numstyles-1].color = colorbuffer[i];       
     1230        else if(MS_VALID_COLOR(layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor))
     1231          layer->class[i].styles[layer->class[i].numstyles-1].outlinecolor = colorbuffer[i]; /* if no color, restore outlinecolor for the TOP style */
     1232      }
    12131233    }
    12141234    layer->class[i].label.mindistance = mindistancebuffer[i];
Note: See TracChangeset for help on using the changeset viewer.