2016-10-24 12 views
0

Я использовал пакет под названием Rtree версии 0.8.2, который позволяет помещать объекты геопространства в индекс и выполнять поиск очень быстро. Однако у меня возникла проблема с попыткой изменить уже созданный индекс.Как изменить объект в индексе Rtree Python

Так есть вставка метод, который позволяет добавить объект в индекс:

from rtree import index 
idx = index.Index() 
idx.insert(1, (left, bottom, right, top), 
      obj = {'field1': 'value1', 'field2': 'value2'}) 

А также является удалить метод, который позволяет удалить ненужный объект из индекса:

idx.delete(1, (left, bottom, right, top)) 

К сожалению, в руководстве по упаковке я не смог найти информацию о том, как изменить существующий объект, который уже находится в индексе.

Мне особенно интересно, как добавить еще одно поле в obj свойство, которое представлено как dict (например, 'field3': 'value3').

ответ

0

Вы должны

  1. удалить старый объект
  2. вставить новый объект

Там нет ничего плохого в этом; это может помочь улучшить структуру дерева.

+0

К сожалению, это то, что я сделал в конце. Это совсем не удобно, но похоже, что есть другой вариант. – Akbar

+0

Почему вы думаете, что это плохо? Чем лучше R * -тиры даже автоматически удаляют и повторно вставляют точки, чтобы улучшить древовидную структуру. –