确定Openstreetmap路由算法中的边界框大小

问题描述:

我正在使用Openstreetmap开发自定义路由应用程序。为此,我必须使用Openstreetmap API(如Overpass)阅读(至少)某个边界框中的节点和边。之后,我将处理节点和边缘并应用我的路由算法。我的主要问题是确定这个边界框的大小。确定Openstreetmap路由算法中的边界框大小

一种方法是读出一个包含原始节点和目标节点的大边界框,并处理其中的所有节点和边,但这看起来过多并且需要从API中加载很长时间。此外,这是无法保证我们拥有所有需要的道路。

另一种方式是读出原始节点周围的小型边界框,从那里开始路由算法(如Dijkstra),并在需要时读取/处理地图的新部分。这种方法必须对API服务器进行几次调用,这也需要时间。

您是否知道这两种方法中的一种在OSM路由应用程序中是否很常见,或者如果采用其他方法?

您的方法非常不寻常,不推荐。通常你有OSM数据库的本地副本。例如整个planetextract,例如一个国家。

即时获取这些数据是一个非常糟糕的主意,你会遇到很多问题。这些API并不是真的准备好支持这种沉重的查询。远距离处理数百兆字节的数据。此外,如果您希望能够快速计算路线,则需要预处理原始数据。

如果您决定安装本地数据库,那么我建议您阅读switch2osm。有一个guide about building a tile server你可以使用,只是跳过安装Mapnik,mod_tile,渲染等

+1

+1,但我建议看看路由软件(瓷砖服务器将无助于路由):https:// wiki .openstreetmap.org/wiki /路由 – Karussell

+0

正确,但本指南有助于创建和更新数据库:) – scai

+0

这不是你想要的,如果你只想路由:) – Karussell