Моя проблема: используя ArcPy, я хочу перебрать буферы и выбрать geometry_features внутри каждого буфера и сделать что-то (обновить) только объекты, найденные в этом конкретном буфере. Код ниже объясняет, что я хочу сделать (более или менее):
def _update_connections_inside_buffers(self):
buffers = arcpy.SearchCursor(self.__buffer_class_name)
in_layer = "connections"
for i_buffer in buffers:
shape = i_buffer.shape
# can not use a geometry to do a selection.. very inconvenient!!
connections = arcpy.SelectLayerByLocation_management(in_layer, "WITHIN", shape)
self._update_connections(connections)
Однако: это не будет работать, потому что SelectLayerByLocation_management () не принимает геометрию, "shape" в качестве аргумента, но ожидает имя_класса_имя (имя слоя). Есть ли arcpy метод, который может выполнять поиск с использованием пространственного предиката. Я не мог найти, как это сделать из руководства ESRI.
Я нашел решение проблемы. Я должен был предоставить feature_layer в качестве первого аргумента вместо ссылки на строку в class_layer. "
источник