Vector topology must be rebuilt in grass7 with v.build for grass6 vectors in order to have topology available.

Up to now, grass7 vectors are fully compatible with grass6 vectors: grass6 can work with grass7 vectors. Not the other way around, because in grass7, the spatial index is again file-based, not built on the fly. Consequently, grass7 can open a grass57/grass6 vector only on level 1 (no topo) and areas are not available until topo has been rebuilt.

Copying vectors works in grass7, even if one or more support files are missing, i.e. you can copy a vector in grass6 format or a possibly broken vector from another mapset to the current mapset. That is new (r39977) and not possible in grass6.

Keeping the spatial index in file serves two purposes: first, reduced memory requirements because only the sidx header is loaded to memory when opening an old vector on level 2, second, faster spatial queries because the spatial index is not rebuilt each time a vector is opened, it is existing in file.

The procedures to read to/write from sidx have been written anew from scratch because the old grass5 procedures did not allow file-based search, the whole index was reconstructed in memory. The new spatial index itself is loosely based on the old code, the function names are the same, pretty much everything else changed (from R-tree to R*-tree plus a new structure holding info about the search tree, good practice for search trees, see e.g. libavl and libspatialindex).

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

Reply via email to