[GRASS-dev] Re: bug in Vect_cidx_find_next() ?

Radim Blazek radim.blazek at gmail.com
Thu Sep 28 16:21:05 EDT 2006


Yes,
it seems to be bug, I think that on row 296 in cindex.c
the requested cat should also be checked, not only the type.
But I am tired now, please check it twice.
Bravo Moritz!

Radim

On 9/28/06, Moritz Lennert <mlennert at club.worldonline.be> wrote:
> Hello,
>
> Trying to rework d.vect.chart I am using the Vect_cidx_find_next() function.
>
> However, using a map with areas I get behaviour which seems incorrect
> and which I cannot explain.
>
> I have the following category index (result of Vect_cidx_dump(Map, stdout)):
>
> .
> .
> [Field 0]
> .
> .
> Field      1  number of unique cats:     589  number of cats:    1185
> number of types: 3
> ------------------------------------------------------------------------------------------
>              type |     count
>                 8 |       592
>                 4 |         1
>                64 |       592
>   category | type | line/area
>      11001 |    8 |      1895
>      11001 |   64 |       127
>      11002 |    8 |      1810
>      11002 |   64 |        42
>      11004 |    8 |      1874
>      11004 |   64 |       106
>      11005 |    8 |      1923
>      11005 |   64 |       155
>      11007 |    8 |      1866
>
> etc.
>
> Now, when I launch
>
> Vect_cidx_find_next( Map, field_index=1, cat=11002, type=15,
> start_index=3, &stype, &sid )
>
> it returns 4 and line id=1874.
>
> This is wrong as the fourth item in the index, which does have line id
> 1874, has cat 11004 and not cat 11002. This is confirmed by launching
>
> Vect_cidx_get_cat_by_index ( Map, field_index, 4, &testcat, &testtype,
> &testid)
>
> which returns testcat = 11004.
>
> Am I right in assuming that there is a bug in Vect_cidx_find_next, or am
> I misunderstanding something here ?
>
> I don't have this problem with a pure point file, which only has one type:
>
> Field      1  number of unique cats:     589  number of cats:     593
> number of types: 1
> ------------------------------------------------------------------------------------------
>              type |     count
>                 1 |       593
>   category | type | line/area
>      11001 |    1 |        97
>      11002 |    1 |        12
>      11002 |    1 |       593
>      11004 |    1 |        76
>      11005 |    1 |       125
>      11007 |    1 |        68
>
>
> So this seems to be linked to the type handling.
>
> Any ideas,
>
> Moritz
>




More information about the grass-dev mailing list