带有 Graphhopper 路由的 OSMBonusPack API
OSMBonusPack with Graphhopper routing API
我正在构建一个应用程序,我在其中使用 osmdroid 及其奖励包和用于图块的 mapnik。我希望能够输出多个点之间的最短路径,并作为下一步考虑时间范围的构建路径。根据我的研究,Graphhopper Routing Optimization API 似乎正是我所需要的,但我不知道如何在我的项目中正确使用它。由于我使用的是 os OSMBonusPack,看来我唯一的选择是正确设置 Road Manager 以便能够使用路由优化。按照 OSMBonusPack 的教程,我能够创建道路管理器并绘制从一点到另一点的路径,但不确定如何添加优化以找到到它的最短路径以及将道路类型设置为 "pedestrian" 而不是汽车.任何帮助将不胜感激。这是我用来在我的点之间建立路径的代码,与教程几乎完全相同:
ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>();
for (int i = 0; i < chosenAttractions.size(); i++) {
GeoPoint point = new GeoPoint(chosenAttractions.get(i).latitude, chosenAttractions.get(i).longitude);
waypoints.add(point);
}
if (count > 1) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
RoadManager roadManager = new GraphHopperRoadManager("fae5bf0a-402a-48b2-96ac-324e138f53dc", true);
// roadManager.addRequestOption("routeType=bicycle");
Road road = roadManager.getRoad(waypoints);
Polyline roadOverlay = RoadManager.buildRoadOverlay(road);
map.getOverlays().add(roadOverlay);
map.invalidate();
}
}
原来要使用路由的优化或车辆选项 API 必须将其作为参数传递给 addRequestOption 函数,例如:
roadManager.addRequestOption("vehicle=foot");
roadManager.addRequestOption("optimize=true");
我正在构建一个应用程序,我在其中使用 osmdroid 及其奖励包和用于图块的 mapnik。我希望能够输出多个点之间的最短路径,并作为下一步考虑时间范围的构建路径。根据我的研究,Graphhopper Routing Optimization API 似乎正是我所需要的,但我不知道如何在我的项目中正确使用它。由于我使用的是 os OSMBonusPack,看来我唯一的选择是正确设置 Road Manager 以便能够使用路由优化。按照 OSMBonusPack 的教程,我能够创建道路管理器并绘制从一点到另一点的路径,但不确定如何添加优化以找到到它的最短路径以及将道路类型设置为 "pedestrian" 而不是汽车.任何帮助将不胜感激。这是我用来在我的点之间建立路径的代码,与教程几乎完全相同:
ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>();
for (int i = 0; i < chosenAttractions.size(); i++) {
GeoPoint point = new GeoPoint(chosenAttractions.get(i).latitude, chosenAttractions.get(i).longitude);
waypoints.add(point);
}
if (count > 1) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
RoadManager roadManager = new GraphHopperRoadManager("fae5bf0a-402a-48b2-96ac-324e138f53dc", true);
// roadManager.addRequestOption("routeType=bicycle");
Road road = roadManager.getRoad(waypoints);
Polyline roadOverlay = RoadManager.buildRoadOverlay(road);
map.getOverlays().add(roadOverlay);
map.invalidate();
}
}
原来要使用路由的优化或车辆选项 API 必须将其作为参数传递给 addRequestOption 函数,例如:
roadManager.addRequestOption("vehicle=foot");
roadManager.addRequestOption("optimize=true");