建筑物之间的距离

Distance between buildings

我想计算建筑物之间的距离。首先我得到graph_from_place,然后我得到geometries_from_place。对于所有几何图形,我都以点或 polygon.centroid 为中心。到中心我要get_nearest_node。不幸的是,所有最近的节点都很远并且是同一个节点。我做错了什么或如何计算建筑物之间的距离?我尝试了一些不同的小城镇,但它总是导致同样的问题。非常感谢!

import osmnx as ox
from IPython.display import IFrame
%matplotlib inline
ox.config(log_console=True, use_cache=True)
ox.\__version__

place = "Neuenburg am Rhein, Landkreis Breisgau-Hochschwarzwald, Baden-Württemberg, 79395, Germany"
G = ox.graph_from_place(place)

tags = {'building': True, 'amenity': True, 'addr:housenumber': True}
buildings = ox.geometries_from_place(place, tags)

buildings['center'] = buildings['geometry']

count_buildings_point = 0
count_buildings_poly = 0

for i in range(len(buildings)):
    if(buildings.loc[i, 'geometry'].type == 'Polygon'):
        buildings.loc[i, 'center'] = buildings.loc[i, 'geometry'].centroid
        count_buildings_poly += 1
    else:
        buildings.loc[i, 'center'] = buildings.loc[i, 'geometry']
        count_buildings_point += 1
        
print('#polygon', count_buildings_poly)
print('#point  ', count_buildings_point)

buildings['nearestnode'] = buildings['geometry']

p = buildings.loc[0, 'center'].x, buildings.loc[0, 'center'].y
p
>(7.5589873, 47.8144135)

nn_node1 = ox.get_nearest_node(G, p)
nn_node1
>256970665

p2 = buildings.loc[1, 'center'].x, buildings.loc[1, 'center'].y
p2
>(7.565093, 47.814843)

nn_node2 = ox.get_nearest_node(G, p2)
nn_node2
>256970665

大声笑,我明白了。我不得不更改经度和纬度:

p = buildings.loc[0, 'center'].x, buildings.loc[0, 'center'].y
p
>(7.5589873, 47.8144135)

nn_node1 = ox.get_nearest_node(G, p)
nn_node1
>256970665

p2 = buildings.loc[1, 'center'].x, buildings.loc[1, 'center'].y
p2
>(7.565093, 47.814843)

nn_node2 = ox.get_nearest_node(G, p2)
nn_node2
>256970665

至:

p1 = [buildings.loc[0, 'center'].y, buildings.loc[0, 'center'].x]
p1
>[47.873246, 7.5688247]
nn1 = ox.get_nearest_node(G, p1)
nn1
>90875045

p2 = [buildings.loc[1, 'center'].y, buildings.loc[1, 'center'].x]
p2
>[47.7893012, 7.5377884]
nn2 = ox.get_nearest_node(G, p2)
nn2
>456275