On Jul 13, 2011, at 10:34 AM, Sean Gillies wrote:

> On Wed, Jul 13, 2011 at 12:09 AM, Christian Ledermann
> <[email protected]> wrote:
>> I discovered a bug in rtree:
>> 
>>>>> from rtree import Rtree
>>>>> tree = Rtree()
>>>>> bounds = [0,0,1,1]
>>>>> tree.add(1,bounds)
>>>>> list(tree.intersection(bounds))
>> [1L]
>>>>> tree.add(-1288508995,bounds)
>>>>> list(tree.intersection(bounds))
>> [1L, 18446744072421042621L]
>>>>> 
>> 
>> 
>> 
> 
> Hi Christian,
> 
> Libspatialindex uses unsigned longs and we've failed to document this
> properly. If you are hashing objects to make integer ids, you'll need
> to shift the values to be > 0.
> 

Sean,

This is my mistake in the libspatialindex API.

I see this in the SpatialIndex.h header:

typedef int64_t id_type;

but for some reason, I used uint64_t's for the ids and the compiler didn't warn 
us about that.

/me wonders how to/if to fix this gracefully.
        


> In Vaytrou, I maintain a pair of OI and IO BTrees to map objects to a
> positive integer id following the example of zope.intid.
> 
> -- 
> Sean
> _______________________________________________
> Community mailing list
> [email protected]
> http://lists.gispython.org/mailman/listinfo/community

_______________________________________________
Community mailing list
[email protected]
http://lists.gispython.org/mailman/listinfo/community

Reply via email to