OSMNx获取建筑多边形节点/角/边坐标时结果被截断问题求助
问题根因
你观测到的坐标显示不全是Pandas库默认的控制台输出缩略规则导致的,OSMNx实际已经拉取到了该建筑Polygon的全部顶点坐标,不存在数据截断的情况。你截图中看到的POLYGON字段仅显示前两个坐标,是Pandas为了优化控制台展示效果自动做的缩略处理,数据本身是完整的。
解决方案
1. 提取完整坐标的代码示例
import osmnx as ox import pandas as pd # 关闭Pandas列宽/长度限制,打印时不会自动缩略内容 pd.set_option('display.max_colwidth', None) pd.set_option('display.max_rows', None) # 原有查询逻辑 test = ox.geocode_to_gdf('aldi, Macclesfield, Cheshire, GB') # 提取首个结果的多边形对象 building_polygon = test.iloc[0].geometry # 提取多边形外围的所有顶点坐标 all_vertex_coords = list(building_polygon.exterior.coords) # 输出全部坐标和顶点总数 print("建筑所有顶点坐标:", all_vertex_coords) print("顶点总数:", len(all_vertex_coords))
如果你是通过geometries_from_place/新版本的features_from_place获取的建筑数据,提取坐标的逻辑完全一致,只需取出对应行的geometry属性,读取exterior.coords即可拿到所有顶点坐标。
2. 注意事项
- 如果你需要获取每个顶点对应的OSM原始节点ID,可通过OSMNx的overpass查询接口自定义查询规则,直接拉取建筑关联的所有节点信息。
- 建议升级到最新版本OSMNx,避免旧版本存在的查询逻辑bug,升级命令:
pip install -U osmnx。
内容的提问来源于stack exchange,提问作者Ana
相关产品推荐
相关产品推荐

