You can use Vect_get_point_in_area and then write_att.
See code in v.alabel:
label = atoi (value->answer);
for (i = 1 ; i <= Map.n_areas ; i++)
{
if (0 != Map.Area[i].att)
continue;
ret = Vect_get_point_in_area (&Map, i, &X, &Y);
if (ret<0)
{
fprintf (stderr, "**** Could not label area %d\n", i);
continue;
}
write_att (afp, 'A', X, Y, label);
if (incr->answer)
label++;
cnt++;
}
- Bill