【问题标题】:How to snap coordinates to road and calculate distance如何将坐标捕捉到道路并计算距离
【发布时间】:2020-09-28 13:08:18
【问题描述】:

也许有人知道一些事情,因为我找不到任何对我有意义的东西。 我有一个数据集位置(经度、纬度),我想将它们捕捉到最近的道路并计算它们之间的距离。

到目前为止,我发现了 OSM,但是我找不到一个关于如何使用 python 使用 API 的工作示例。

如果你们中的任何人可以提供帮助,我非常感谢您提供的小细节。

同时会尝试自己找出答案,如果成功则发布答案(找不到任何类似的问题,所以将来可能会对某人有所帮助)

【问题讨论】:

  • 你可以试试this
  • 对于python,有计算点之间距离的函数,也可以计算点和由2个lat/long对定义的线段之间的距离。如果道路由点或线段定义,则可以进行计算。你需要抢多少分?
  • 现在变得棘手了,大约 600k
  • 600k 仍然可以,但这取决于道路的编码方式。您能否提供要捕捉的道路和点的数据样本?
  • 到目前为止,我正在尝试将其捕捉到包含欧洲所有铁路的 osm 文件中。使用 osmnx,但是文件似乎很大,因为我无法加载整个 osm 文件。

标签: python geolocation location openstreetmap


【解决方案1】:

欢迎! OSM 是一个很棒的资源,但本质上是一个原始数据集,您必须下载并自行处理。有很多方法可以做到这一点,如果您需要相对较小的数据提取(而不是完整的行星文件),Overpass API 是查看的地方。 Overpass turbo (docs) 是帮助使用此 API 的有用工具。

一旦你有了你需要的路网数据,你可以使用像Shapelysnap这样的库,你的点到路网几何,然后计算它们之间的距离(如果你需要“作为乌鸦苍蝇”距离),或split 捕捉点的道路几何形状并计算线的长度。如果您需要考虑地球曲率的真实距离(而不是投影地图上显示的距离),您可以使用 Geopy 之类的东西。

您可能还想查看Map Matching API from Mapbox(完全公开,我在那里工作),它采用一组坐标,将它们捕捉到道路网络,并返回捕捉到的几何图形以及有关路线的信息,包括距离。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 2019-03-20
    • 2023-02-02
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多