本文介绍了OSMNx:获取多边形/建筑物的节点/角/边的坐标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试检索列表中每个商业建筑的所有节点/角/边的坐标。例如,对于英国Macclesfield的超市Aldi,我可以从UI获得10个节点(超市的所有角落/边缘),但我只能从osmnx检索这10个节点中的2个。我需要访问完整的节点列表,但它截断了结果,在本例中只给出了10个节点中的2个。使用以下代码:
import osmnx as ox
test = ox.geocode_to_gdf('aldi, Macclesfield, Cheshire, GB')
ax = ox.project_gdf(test).plot()
test.geometry
或
gdf = ox.geometries_from_place('Grosvenor, Macclesfield, Cheshire, GB', tags)
gdf.geometry
两者都只返回两个坐标,并截断OpenStreetMap UI中提供的其他信息/结果(您可以在附加的图像几何图形的第一列中看到它&>仅返回两个坐标,其他结果被截断...)。我很感激在这方面能帮上忙,提前谢谢。推荐答案
很难猜到您在这里做什么,因为您没有提供可重复使用的示例(例如,tags
是未定义的)。但我会试着猜猜你想要什么。
geometries
模块的正确用法,请参阅documentation。import osmnx as ox
# get the building footprints in Macclesfield
place = 'Macclesfield, Cheshire, England, UK'
tags = {'building': 'commercial'}
gdf = ox.geometries_from_place(place, tags)
# how many did we get?
print(gdf.shape) # (57, 10)
# extract the coordinates for the first building's footprint
gdf.iloc[0]['geometry'].exterior.coords
或者,如果您想要特定建筑物的占地面积,您可以查找其OSM ID并告诉OSMnxgeocode该值:
gdf = ox.geocode_to_gdf('W251154408', by_osmid=True)
polygon = gdf.iloc[0]['geometry']
polygon.exterior.coords
这篇关于OSMNx:获取多边形/建筑物的节点/角/边的坐标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!