2

I'm using the Rtree index in libspatialindex to insert some values as indicated here:

>>> idx = index.Index()
>>> idx.insert(42, (0, 0, 1, 1))

how can I change the value for the id 42? I'm looking for something less costly than delete+add. Also, how can I get the coordinate value of a given id?

ralux
  • 25
  • 5

1 Answers1

0

I came across the same issue and there doesn't seem to be a generic solution. So here is my hack around, hopefully can be of help:

My set up:

class Point:
    def __init__(self,x,y):
        self.x = x
        self.y = y

When I index all my points, I run this code:

idx = index.Index()
# input_points is a list of Point object
for ind, pt in enumerate(input_points):
    idx.insert(ind, (pt.x, pt.y, pt.x, pt.y))
return idx

Here you may have noticed that the id I assigned to each point is the index of that point inside my input_points list.

So later when I want to get a specific point by id, I run:

target_point = input_points[id] 

Then you can do things with the target_point because that should be the point you are looking for.

This is ONLY a hack around, so please let me know if you found a generic solution, I am curious too.

benjaminz
  • 3,118
  • 3
  • 35
  • 47