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

Algorithm Openstreetmap路由算法中边界盒大小的确定,algorithm,routing,openstreetmap,overpass-api,Algorithm,Routing,Openstreetmap,Overpass Api,我正在使用Openstreetmap开发一个自定义路由应用程序。为此,我必须(至少)使用OpenStreetMapAPI(如立交桥)读取某个边界框中的节点和边。之后,我将处理节点和边,并应用我的路由算法。我的主要问题是确定这个边界框的大小 一种方法是读取一个大的边界框,包括起始节点和目标节点,并处理其中的所有节点和边,但这似乎过多,并且需要从API加载很长时间。此外,这并不能保证我们拥有所需的所有道路 另一种方法是读取原点节点周围的小边界框,从那里开始路由算法(比如Dijkstra),并在需要时

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

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

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


您知道这两种方法中的一种在OSM路由应用程序中是否常见,或者另一种方法是否更可取吗?

您的方法非常不寻常,不推荐使用。通常,您有一个OSM数据库的本地副本。要么是整个国家,要么是一个国家

动态获取这些数据是一个非常糟糕的主意,您将遇到很多问题。API并没有真正准备好支持如此繁重的查询。对于长距离传输,您必须处理数百兆字节的数据。此外,如果您希望能够快速计算路由,则有必要预处理原始数据


如果您决定安装本地数据库,那么我建议您阅读。有一个可以使用的方法,只需跳过安装Mapnik、mod_tile、renderd等即可。

+1但我建议查看路由软件(tile服务器对路由没有多大帮助):正确,但本指南有助于创建和更新数据库:),如果您只需要路由,则不需要此方法:)