如何使用Osmnx获取指定城市区域的Bounding Box值?
解决方案
你有两种简洁的方式获取目标区域的Bounding Box:
1. 直接从查询地点获取官方边界
无需先获取建筑数据,用ox.geocode_to_gdf解析地点并返回包含边界信息的GeoDataFrame,直接提取Bounding Box:
import osmnx as ox city = "Hannover Mitte" # 获取地点的地理元数据,包含官方定义的边界 place_gdf = ox.geocode_to_gdf(city) # 提取Bounding Box,格式为[最小经度, 最小纬度, 最大经度, 最大纬度] bbox = place_gdf.total_bounds.tolist() print(bbox)
2. 从已获取的建筑数据计算实际覆盖范围
如果你已经拿到buildings这个GeoDataFrame,直接调用它的total_bounds属性,就能得到所有建筑覆盖区域的经纬度极值:
# 从现有建筑数据中提取Bounding Box bbox = buildings.total_bounds.tolist() # 结果格式:[最小经度, 最小纬度, 最大经度, 最大纬度] print(bbox)
两种方法的差异:第一种是OSM中该地点的官方定义边界,第二种是你获取的建筑实际覆盖的范围,可根据需求选择。
内容的提问来源于stack exchange,提问作者Duc Anh Ho
相关产品推荐
相关产品推荐

