Mój problem: za pomocą ArcPy chcę przeglądać bufory i wybierać właściwości geometry wewnątrz każdego bufora i robić coś (aktualizować) tylko obiekty znalezione w tym konkretnym buforze. Poniższy kod wyjaśnia, co chcę zrobić (mniej więcej):
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)
Jednak: to nie zadziała, ponieważ SelectLayerByLocation_management () nie akceptuje geometrii, „kształtuje” jako argument, ale oczekuje nazwy_klasy_funkcji (nazwa warstwy). Czy istnieje metoda arcpy, która może wyszukiwać przy użyciu predykatu przestrzennego. Nie mogłem znaleźć sposobu na zrobienie tego z podręcznika ESRI.
Znalazłem rozwiązanie problemu. Musiałem podać funkcję player_layer jako pierwszy argument zamiast ciągu odnoszącego się do player_layer. ”
źródło