我的目标是获取特定区域中所有可选路线的列表。 我想使用OSM来获取此数据 路线是指可以从第一个路口驶向第二个路口的成对路口。
到目前为止,我已经在overpass-turbo网站中尝试了以下代码:
[bbox:{{bbox}}];
way[highway~"^(residential)$"]->.minor;
node(w.minor)(w.minor);
out;
输出是交叉点,但是:
答案 0 :(得分:0)
如果您愿意使用Java,请考虑看看Atlas。 Atlas是OSM数据的内存表示形式,它使您可以创建表示街道网络的图形。有一个用于连接,路由和空间搜索的Atlas API层。根据您的特定需求-Route的概念-维护OSM路径和节点,该路径和节点指定了两个节点或路径之间的路径。有一些方法可以获取最佳路线或获取所有可能的路线。
要开始使用,我建议以下内容:
加载OSM文件的示例代码:
public class TestAtlasTestRule extends CoreTestRule
{
@TestAtlas(loadFromJosmOsmResource = "yourOsmFile.osm")
private Atlas yourAtlasFile;
public Atlas getAtlasFile()
{
return this.yourAtlasFile;
}
}
获取路线的示例代码:
// To get the shortest route
final Route shortestRoute = AStarRouter.dijkstra(yourAtlasFile, distanceThreshold).route(startNode, endNode);
// To get all the routes
final Set<Route> allRoutes = AllPathsRouter.allRoutes(startEdge, endEdge, comparatorThatEnforcesRouteOrdering);