[GRASS-dev] modifying the dblink it require to re-build the topology

Moritz Lennert mlennert at club.worldonline.be
Tue Nov 5 09:20:25 PST 2013


Pietro,

On 05/11/13 18:03, Pietro wrote:
> Hi all,
>
> I want to add a new layer to an existing vector map. I've noticed that
> if I try to open a vector map with topology in read mode, I got the
> following warning:
>
> WARNING: Unable to add attribute link, vector map is not opened in WRITE mode
>
> If I open the vector map, with and without the topology, in read and
> write mode it works, but after I need to re-build the topology... that
> it is quite annoying because I did not touch the geometry features...
> What it is the best way If I have only to modify the dblinks [0] of an
> existing vector map?

If all you want to do is to connect a specific table to a layer then 
v.db.connect does that.

>
> And what happens to the categories? should I rewrite the categories to
> link the new layer with the geometry features? Or if not define the
> geometry features inherit the categories from the previous layer?

Even though you can link a table to a layer, this only makes sense if 
there are category values in that layer for at least some of the 
features in the map. GRASS does not automatically add category values to 
a layer just because you add a link from that layer to a table. Nor do 
you actually need to add a link to a table to add layers.

If you want to use the same category values in each layer, than you have 
the "transfer" option in v.category (only grass7) to copy category 
values from one layer to another.

You can then create the new table and the link to it with v.db.addtable. 
Or create the table yourself and use v.db.connect to link to it.

Moritz


More information about the grass-dev mailing list