[GRASS-SVN] r69697 - in grass/trunk/display: d.legend.vect d.vect d.vect.thematic
svn_grass at osgeo.org
svn_grass at osgeo.org
Sat Oct 15 20:11:40 PDT 2016
Author: annakrat
Date: 2016-10-15 20:11:40 -0700 (Sat, 15 Oct 2016)
New Revision: 69697
Modified:
grass/trunk/display/d.legend.vect/d.legend.vect.html
grass/trunk/display/d.legend.vect/draw.c
grass/trunk/display/d.vect.thematic/legend.c
grass/trunk/display/d.vect/legend.c
Log:
d.legend.vect: add new column to legend file to be able to distinguish line/fill color by d.vect and primary/secondary color by d.vect.thematic
Modified: grass/trunk/display/d.legend.vect/d.legend.vect.html
===================================================================
--- grass/trunk/display/d.legend.vect/d.legend.vect.html 2016-10-15 04:28:42 UTC (rev 69696)
+++ grass/trunk/display/d.legend.vect/d.legend.vect.html 2016-10-16 03:11:40 UTC (rev 69697)
@@ -53,16 +53,19 @@
<p>
Legend file has this format:
<pre>
-label|symbol_name|feature_color|fill_color|size|line_width|geometry_type|feature_count
+label|symbol_name|size|color_type|feature_color|fill_color|line_width|geometry_type|feature_count
</pre>
+Color type can be 'lf' or 'ps'. Based on color type color columns are interpreted
+as line color and fill colors (lf), or primary and secondary colors (ps).
+Module d.vect always uses 'lf' and d.vect.thematic 'ps'.
Here is an example of legend file with subtitles:
<pre>
-Infrastructure|||||||
-major roads|legend/line|5|black|200:200:200|2|line|355
-bridges|extra/bridge|15|black|black|1|point|10938
-Hydrology|||||||
-streams|legend/line_crooked|5|30:144:255|200:200:200|3|line|8554
-water bodies|legend/area_curved|5|none|30:144:255|1|area|27764
+Infrastructure||||||||
+major roads|legend/line|5|lf|black|200:200:200|2|line|355
+bridges|extra/bridge|15|lf|black|black|1|point|10938
+Hydrology||||||||
+streams|legend/line_crooked|5|lf|30:144:255|200:200:200|3|line|8554
+water bodies|legend/area_curved|5|lf|none|30:144:255|1|area|27764
</pre>
<img alt="Example of subheadings used in vector legend"
src="d_legend_vect_subheadings.png">
Modified: grass/trunk/display/d.legend.vect/draw.c
===================================================================
--- grass/trunk/display/d.legend.vect/draw.c 2016-10-15 04:28:42 UTC (rev 69696)
+++ grass/trunk/display/d.legend.vect/draw.c 2016-10-16 03:11:40 UTC (rev 69697)
@@ -29,7 +29,7 @@
char buf[BUFFSIZE];
int got_new;
SYMBOL *Symb;
- char *symb_name, *line_color_str, *fill_color_str, *label, *type_str;
+ char *symb_name, *line_color_str, *fill_color_str, *label, *type_str, *color_type;
double size, line_width;
double row_w, text_h, title_h, title_w;
RGBA_Color *line_color, *fill_color;
@@ -67,7 +67,7 @@
file_in = fopen(file_name, "r");
sub_delim = G_malloc(GNAME_MAX);
- snprintf(sub_delim, sizeof(GNAME_MAX), "%s%s%s%s%s", sep, sep, sep, sep, sep);
+ snprintf(sub_delim, sizeof(GNAME_MAX), "%s%s%s%s%s%s", sep, sep, sep, sep, sep, sep);
if (!file_in)
G_fatal_error(_("Unable to open input file <%s>"), file_name);
@@ -83,7 +83,7 @@
tokens = G_tokenize(buf, sep);
symb_name = G_store(tokens[1]);
size = atof(tokens[2]);
- type_str = G_store(tokens[6]);
+ type_str = G_store(tokens[7]);
G_free_tokens(tokens);
/* Symbol */
@@ -167,10 +167,11 @@
label = G_store(tokens[0]);
symb_name = G_store(tokens[1]);
size = atof(tokens[2]);
- line_color_str = G_store(tokens[3]);
- fill_color_str = G_store(tokens[4]);
- line_width = atof(tokens[5]);
- type_str = G_store(tokens[6]);
+ color_type = G_store(tokens[3]);
+ line_color_str = G_store(tokens[4]);
+ fill_color_str = G_store(tokens[5]);
+ line_width = atof(tokens[6]);
+ type_str = G_store(tokens[7]);
G_free_tokens(tokens);
/* Symbol */
@@ -233,8 +234,17 @@
x = x0 + offs_x + def_symb_w/2.;
y = y0 + offs_y - symb_h/2;
D_line_width(line_width);
- D_symbol(Symb, x, y, line_color, fill_color);
-
+ /* lf - line, fill (as in d.vect)*/
+ if (strcmp(color_type, "lf") == 0)
+ D_symbol(Symb, x, y, line_color, fill_color);
+ /* ps - primary, secondary (as in d.vect.thematic) */
+ else if (strcmp(color_type, "ps") == 0)
+ D_symbol2(Symb, x, y, line_color, fill_color);
+ else {
+ G_warning(_("Invalid value for color type in legend file. "
+ "Use one of 'lf' or 'ps'."));
+ D_symbol(Symb, x, y, line_color, fill_color);
+ }
x = x0 + offs_x + def_symb_w + sym_lbl_space;
y = y0 + offs_y - symb_h/2. + text_h/2.;
D_pos_abs(x, y);
Modified: grass/trunk/display/d.vect/legend.c
===================================================================
--- grass/trunk/display/d.vect/legend.c 2016-10-15 04:28:42 UTC (rev 69696)
+++ grass/trunk/display/d.vect/legend.c 2016-10-16 03:11:40 UTC (rev 69697)
@@ -30,7 +30,7 @@
fprintf(fd, "%s|", leglab);
else
fprintf(fd, "%s|", map);
- fprintf(fd, "%s|%s|%s|%s|%s", icon, size, color, fcolor, width);
+ fprintf(fd, "%s|%s|lf|%s|%s|%s", icon, size, color, fcolor, width);
fprintf(fd, "|%s|%d\n", "point", nfeatures);
}
}
@@ -43,7 +43,7 @@
fprintf(fd, "%s|", leglab);
else
fprintf(fd, "%s|", map);
- fprintf(fd, "%s|%s|%s|%s|%s", icon_line, size, color, fcolor, width);
+ fprintf(fd, "%s|%s|lf|%s|%s|%s", icon_line, size, color, fcolor, width);
fprintf(fd, "|%s|%d\n", "line", nfeatures);
}
}
@@ -56,7 +56,7 @@
fprintf(fd, "%s|", leglab);
else
fprintf(fd, "%s|", map);
- fprintf(fd, "%s|%s|%s|%s|%s", icon_area, size, color, fcolor, width);
+ fprintf(fd, "%s|%s|lf|%s|%s|%s", icon_area, size, color, fcolor, width);
fprintf(fd, "|%s|%d\n", "area", nfeatures);
}
}
@@ -68,7 +68,7 @@
fprintf(fd, "%s|", leglab);
else
fprintf(fd, "%s|", map);
- fprintf(fd, "%s|%s|%s|%s|%s", icon, size, color, fcolor, width);
+ fprintf(fd, "%s|%s|lf|%s|%s|%s", icon, size, color, fcolor, width);
fprintf(fd, "|%s|%d\n", "centroid", nfeatures);
}
}
Modified: grass/trunk/display/d.vect.thematic/legend.c
===================================================================
--- grass/trunk/display/d.vect.thematic/legend.c 2016-10-15 04:28:42 UTC (rev 69696)
+++ grass/trunk/display/d.vect.thematic/legend.c 2016-10-16 03:11:40 UTC (rev 69697)
@@ -28,7 +28,7 @@
fd = fopen(legfile, "a");
/* Title */
- fprintf(fd, "|||||%s\n", title);
+ fprintf(fd, "||||||%s\n", title);
/* First line */
if (stats_min > breakpoints[0]){
@@ -37,16 +37,16 @@
else{
fprintf(fd, "%.2f - %.2f|",stats_min, breakpoints[0]);
}
- fprintf(fd, "%s|%d|%d:%d:%d|%d:%d:%d|%d|%s|%d\n",
- icon, size, bcolor.r, bcolor.g, bcolor.b,
- colors[0].r, colors[0].g, colors[0].b, default_width,
+ fprintf(fd, "%s|%d|ps|%d:%d:%d|%d:%d:%d|%d|%s|%d\n",
+ icon, size, colors[0].r, colors[0].g, colors[0].b,
+ bcolor.r, bcolor.g, bcolor.b, default_width,
topo, frequencies[0]);
/* Middle lines */
for (i = 1; i < nbreaks; i++){
- fprintf(fd, "%.2f - %.2f|%s|%d|%d:%d:%d|%d:%d:%d|%d|%s|%d\n",
+ fprintf(fd, "%.2f - %.2f|%s|%d|ps|%d:%d:%d|%d:%d:%d|%d|%s|%d\n",
breakpoints[i-1],breakpoints[i],
- icon, size, bcolor.r, bcolor.g, bcolor.b,
- colors[i].r, colors[i].g, colors[i].b, default_width,
+ icon, size, colors[i].r, colors[i].g, colors[i].b,
+ bcolor.r, bcolor.g, bcolor.b, default_width,
topo, frequencies[i]);
}
/* Last one */
@@ -56,9 +56,9 @@
else {
fprintf(fd, "%.2f - %.2f|", breakpoints[nbreaks - 1], stats_max);
}
- fprintf(fd, "%s|%d|%d:%d:%d|%d:%d:%d|%d|%s|%d\n",
- icon, size, bcolor.r, bcolor.g, bcolor.b,
- colors[nbreaks].r, colors[nbreaks].g, colors[nbreaks].b, default_width,
+ fprintf(fd, "%s|%d|ps|%d:%d:%d|%d:%d:%d|%d|%s|%d\n",
+ icon, size, colors[nbreaks].r, colors[nbreaks].g, colors[nbreaks].b,
+ bcolor.r, bcolor.g, bcolor.b, default_width,
topo, frequencies[nbreaks]);
fclose(fd);
More information about the grass-commit
mailing list