2008/8/23 Martin Landa <[EMAIL PROTECTED]>: >> On Thu, Aug 21, 2008 at 6:54 PM, Benjamin Ducke >> <[EMAIL PROTECTED]> wrote: >>> I am struggling to understand how to delete an object, including its >>> attached attributes, from a GRASS vector map. >>> >>> I open the map with: >>> >>> Vect_open_update ( &Map, MAPS[i].tempname, mapset ); >>> >>> Then I find the category IDs of the objects I want to delete and then I >>> do: >>> >>> Vect_delete_line ( &Map, cat ); >>> Vect_field_cat_del ( Cats, field, cat ); > > the second argument of Vect_delete_line() is feature id not category. > Feature ids start at 1. You get number of features by > Vect_get_num_lines().
I forgot to mention, to get list of feature ids which have given field/category use Vect_cidx_find_all(..., cat, list); then for (i = 0; i < list->n_values; i++) { Vect_delete_line(&Map, list->value[i]; } Note that you need to open vector map at topology level (2) to use Vect_cidx_find_all(..., cat, list) otherwise you need to read all features and check their category manually. -- Martin Landa <landa.martin gmail.com> * http://gama.fsv.cvut.cz/~landa * _______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev