我编写了一个基本函数,以从shapely
函数中递归地查找ox.gdf_from_place
多边形。本质上,这个想法是调用ox.gdf_from_place
直到返回多边形。问题是即使执行正常,我的函数也不会返回任何内容。
有人对如何使它起作用有任何建议吗?
import shapely
import osmnx as ox
result_num = 0
def recursive_find_poly(poi, result_num):
country = ox.gdf_from_place(poi, which_result=result_num)
if type(country.unary_union) != shapely.geometry.polygon.Polygon:
result_num += 1
recursive_find_poly(poi, result_num)
else:
return country
test = recursive_find_poly('Istanbul', result_num)
答案 0 :(得分:3)
您忘记了-n
子句中的return
语句:
if
否则,匹配调用返回的值将丢失。
答案 1 :(得分:1)
据我所知,递归函数应该始终返回或完全不返回任何内容。因此,我认为您的递归函数的问题是:当您在 if 块中时,它不返回任何内容,但是当它在 else 块中时,它确实会返回的东西。如果您找到一种方法来重写您的函数,以便它始终返回某些内容,那么我认为它会起作用。