On Nov 24, 2009, at 12:33 PM, Andrew Byrd wrote: > > On 24 Nov 2009, at 18:50, Howard Butler wrote: >>> The item is not removed from the index when the window specified in >>> the delete method is larger that it, but only when the window exactly >>> matches its bounding box. >>> >>> Is this the expected behavior, am I misunderstanding something? >> >> Expected, yes. "Uniqueness" in the sense of the rtree index is >> really the bounding box that is inserted into it plus the id, not >> merely the id. I put uniqueness in scare quotes because I think you >> can actually have multiple id + bbox entries with the same value and >> delete will delete both of them (not verified though). > > Thanks for your explanation, Howard. I was misinterpreting 'query > window' in this comment in index.py: > "... providing the index's dimension * 2 coordinate pairs representing > the mink and maxk coordinates in each dimension defining the bounds of > the query window." >
Care to come up with some text that's not so confusing? I'll incorporate it before the next release. >> I think you want something like a "range delete", which isn't >> implemented in either libspatialindex or its C API. This would >> allow a user to do it in one shot quite quickly. Right now, you can >> cobble this up by doing a .intersection(objects=True) and inspecting >> the resultant .id and .bbox elements of the results and *then* >> issuing the delete with that. > > In fact, I wanted to delete a single item at a time, and was using > results from intersection(objects=True) to find it. The problem was > that I was calling delete with the item's bounds instead of its bbox, > which is interleaved. It works perfectly with the coordinates in > item.bbox. Excellent. Can you describe what you're using Rtree for? I'm really interested in how people are using it, and for what kind of data. _______________________________________________ Community mailing list [email protected] http://lists.gispython.org/mailman/listinfo/community
