On 29/04/11 11:34, Moritz Lennert wrote:
On 29/04/11 00:37, Hamish wrote:
Johannes wrote:
First I've two general questions about d.vect:
1) Is it possible to use own symbol for the point icons?
see
http://grass.osgeo.org/wiki/IconSymbols#Authoring_instructions
2) How can I change the line type (e.g dashed line, etc.)?
You can't. (only in ps.map)
Maybe it will be possible in grass7?
One possible option (although admittedly somewhat brute force) is to use
v.to.points, playing with the dmax parameter in v.to.point or with the
symbol size to differentiate.
You can only use symbols that are the same in all directions (e.g.
circles) since the orientation of the symbol will not follow the
orientation of the line.
And more as proof-of-concept fun on Friday afternoon than anything serious (but who knows
), here's a (convoluted) way to actually getting line patterns (using roadsmajor from NC demo data set) with d.vect:
#Split the lines into smaller segments to get more detailed azimuths
v.split roadsmajor out=temp length=100
#attach unique categories to each new line segment in layer 2, create table for layer 2 and retrieve whatever info is interesting from the original roads attribute table (in our case we'll only use MULTILANE)
v.category temp option=add layer=2 out=roads
v.db.addtable roads layer=2
v.db.addcol roads layer=2 col="multilane varchar(1)"
v.to.db roads layer=2 qlayer=1 option=query qcolumn=MULTILANE columns=multilane
#add columns for azimuth (CC from north) and aziumthccw (CCW from east) and fill them
v.db.addcol roads col="azimuth double precision" layer=2
v.db.addcol roads col="azimuthccw double precision" layer=2
v.to.db roads option=azimuth colu=azimuth layer=2
echo "update roads_2 set azimuthccw=450-azimuth where azimuth>90" | db.execute
echo "update roads_2 set azimuthccw=90-azimuth where azimuth<=90" | db.execute
#transform lines into points
v.to.points roads out=roadspoint dmax=100 llayer=2
#draw excerpt of the roads in a map with two linepatterns depending on multilane property
GRASS_RENDER_IMMEDIATE=TRUE
GRASS_HEIGHT=960
GRASS_WIDTH=1280
g.region n=233208 s=221687 w=624737 e=642078
d.vect roadspoint icon=linepatterns/line02 rot_column=azimuthccw where="multilane='n'"
export GRASS_PNG_READ=TRUE
d.vect roadspoint icon=linepatterns/line10 rot_column=azimuthccw where="multilane='y'"
And here are the symbols used
linepatterns/line02:
VERSION 1.0
BOX -0.5 -0.5 0.5 0.5
STRING
LINE
-0.1 0
0.1 0
END
END
linepatterns/line10:
VERSION 1.0
BOX -0.5 -0.5 0.5 0.5
STRING
LINE
-0.5 0
0.5 0
END
END
The result is shown on the attached map.
Enjoy your weekend !

Moritz--
Institut de Gestion de l'Environnement et d'Aménagement du Territoire (IGEAT)
Université Libre de Bruxelles
Bvd du Triomphe, CP 246 (Campus Plaine)
1050 Bruxelles
Belgique
tél. + 32 2 650.56.16 / 50.72 (secr.)
fax + 32 2 650.50.92
(attachments)
