Martin Landa wrote:
Hi all,

most of the functions in Vlib takes layer number as argument. To
support layer names we need just change their prototypes to use 'const
char *' instead of 'int' and update all modules. Then layer will found
by number and if failed by name - see Vect_get_field2().
Layer number is always available, like category number, because it's stored both in the coor and the cidx file, even without topology and without an attribute table linked to a vector layer. Layer names associated with a layer number are only available (currently) if dblinks are present, otherwise layers have only numbers if I understand Vect_read_dblinks() properly.
The second
approach would be to add new functions ending by '2', e.g.
Vect_cidx_find_all2(.., const char *layer, ...), etc.

What do you think? From my point of view would be better just change
prototypes without adding new and new functions which just takes layer
as a string...
I think using new Vect_get_field2() in modules is sufficient to support layer names. When copying a vector map or only dblinks, layer names are already automatically copied as well. It's more like making layer names available to users through a modified layer input option that can take both numbers and names?

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

Reply via email to