Tim wrote:
> I have a vector file that has some islands on it.  I would like to add
> labels to the map, but do not want it to add a label to every island,
> just to the broader category.  To illustrate, say I have a map of
> southeast Asia, I want to put the name of each country on the map,
> centred over the country. But when I try that (or equivalent), I end up
> with "Philippines" written over every single island of the Philippines,
> instead of just over the country itself.  I tried to use v.type and
> convert from centroid to point, and then put the labels on each point,
> but it takes the centroid for each polygon (island) instead of the
> broader category (country) so I ended up with the same problem.  Can
> somebody please let me know how to get around this?

hmmm, an interesting question.


if you don't mind some shell scripting-

MAP=geology
LABEL_COLUMN=label


ITEMS=`v.db.select $MAP -c column=$LABEL_COLUMN`

(
for ITEM in $ITEMS ; do
   v.out.ascii $MAP column=$LABEL_COLUMN where="$LABEL_COLUMN = '$ITEM'" | \
     awk -F'|' \
      'BEGIN { sum_x=0; sum_y=0; i=0 }
       { sum_x += $1; sum_y += $2; i++ }
       END { if(i>0) { printf("%.15g|%.15g|%s\n", sum_x/i, sum_y/i, $4) } }'
done
) | v.in.ascii out=${MAP}_avg_$LABEL_COLUMN columns="x double, y double, 
$LABEL_COLUMN varchar(255)"

d.vect $MAP -c color=none type=area

d.vect ${MAP}_avg_$LABEL_COLUMN disp=attr attrcol=$LABEL_COLUMN \
  lcolor=black lsize=14 xref=center yref=center bgcolor=white



(of course this assumes that your clusters of points are gregarious)


might be nice to write that one up in python and sent it to the addons
repo...


Hamish



      
_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to