获取距离 GPS 位置 1 公里步行距离内的节点 OSMNX

问题描述

给定一个 (lat,lng) 点和一个所有类型的 OSMNX 网络,我怎样才能找到图中哪些节点在距离该点 1 公里步行距离内?

我正在考虑计算每个节点和点之间的大圆距离并检查它是否最多为 1 公里,但我认为这不会非常准确,因为会忽略网络的拓扑结构。

解决方法

这个 OSMnx 用法 example 演示了如何。

,

我以前从未使用过 OSMnx,但 documentation 似乎非常好。不,你是对的,计算Haversine(大圆)距离或欧几里得距离不会给你实际的步行距离。 OSMnx 的全部意义在于它考虑了现实生活中的街道网络。

似乎基于实际网络的功能之一是 osmnx.distance.shortest_path(G,orig,dest,weight='length')

您可以使用此函数计算所有节点与您的点之间的最短距离……然后选择最短距离小于 1 公里的那些。

然而,我不知道如何在 OSMnx 中区分步行路径、环行路径和汽车街道。您可能需要查阅文档以了解更多详情或open an issue in the OSMnx GITHUB repo