我试图在六个多边形中找到数百万个点.这是我的代码:
def find_shape(longitude,latitude):
if longitude != 0 and latitude != 0:
point = shapely.geometry.Point(longitude,latitude)
else:
return "Unknown"
for current_shape in all_shapes:
if current_shape['bounding_box'].contains(point):
if current_shape['shape'].contains(point):
return current_shape['properties']['ShapeName']
break
return "Unknown"
我已经阅读了其他一些问题,这些问题涉及提高形状上的多边形点查询的性能.他们建议Rtrees.但是,似乎这对于有多个多边形(36,000 in one question,100,000 in another)的情况很有用,并且不希望将它们全部循环.
正如你所看到的,我已经设置了一个边界框.这是我的形状设置代码:
with fiona.open(SHAPEFILE) as f_col:
all_shapes = []
for shapefile_record in f_col:
current_shape = {}
current_shape['shape'] = shapely.geometry.asShape(shapefile_record['geometry