Double lines in MAPGEN
jschuler at ncg.scs.ag.gov
Wed Jul 27 12:07:49 EDT 1994
%%%I am trying to make parallel lines similar to those you would see on a topo
%%%map for one of our new sportsman's maps. I have vector files of our road
%%%network broken down by class and want to show them with something besides the
%%%single solid or dashed lines available in the make.line shell. In looking at
%%%the lines command in MAPGEN I see that you can use a symbol to represent the
%%%linear feature, but I'll be dogged if I can get it to work.
%%%I have also tried to turn the vector line into a raster (v.to.rast) and then
%%%back to a vector (r.poly -l) but all I get is a bunch of very small boxes
%%%where all the raster pixels change direction.
%%%We are plotting on a HP Draftmaster SX, from a SUN IPX running GRASS 4.1 and
%%%MAPGEN 4.0. Thanks in advance for any suggestions. I'd hate to have to go over
To bad you haven't upgraded your mapgen to the 4.12 version currently on moon.
I've written the command "make.symline" which does the work of symbol posting
for you. I've played around abit with trying to make parallel lines. There
is a font (ksym1:decimal 7; octal \007) that displays 2 parallel lines.
However, the line it generates does not move smoothly and is broken up.
I also experimented using the colon as the line symbol, but because of the
the way the symbol is defined, you cant get rid of the spaces between each
symbol for a continuous line.
You really need the new font (sssym) that I developed for the 4.13 mapgen
release, which uses a colon with negative space defined in the font symbol.
The 4.13 mapgen code will be released soon.............
The actual runline to generate symbols lines in 4.0 mapgen is:
cat $LOCATION/mapgen/dig_geo/$name | lines -c "-d 1,2 -p $pen -sf -$font $dtype
-a $pattern -ks $ssize -kd $dsize -$type" -m $mdef -o ovm/$overf -
$name = georeferenced GRASS vector file under dig_geo directory
$pen = the pen number for symbols
$font = name of valid mapgen font
$dtype = type of line to be drafted (default is blank, or -B for bezier, or
-R 3 for rhumb)
$pattern = the octal symbol sequence (\007 ). If you want to rotate a symbol
180 degrees the octal number would be \207 (i.e., 007 + 200). Or
you can define a string of symbols \007\126.
$ssize = the size in centimeters for the symbol
$dsize = the distance between each symbol
$type = solid line with symbol (kl) symbol only (kk)
$mdef = map definition name
$overf = output overlay file name
You won't be able to add the symbol pattern using make.legend, this is in the
4.13 code. However, you can use the mapgen legend command to create a line
based on x/y coordinates relative to the data/plot window.
use the following:
legend -m map.def -o ovm/syms.c1 << EOF
More information about the grass-user