Masalah saya: Menggunakan ArcPy Saya ingin mengulang buffer dan memilih geometry_features di dalam setiap buffer dan melakukan sesuatu (perbarui) hanya objek yang ditemukan dalam buffer tertentu. Kode di bawah ini menjelaskan apa yang ingin saya lakukan (kurang lebih):
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)
Namun: ini tidak akan berfungsi karena SelectLayerByLocation_management () tidak menerima geometri, "bentuk" sebagai argumen tetapi mengharapkan feature_class_name (nama layer). Apakah ada metode arcpy yang dapat melakukan pencarian menggunakan predikat spasial. Saya tidak dapat menemukan cara melakukan ini dari manual ESRI.
Saya menemukan solusi untuk masalah ini. Saya harus menyediakan feature_layer sebagai argumen pertama alih-alih string yang merujuk ke class_layer. "
sumber