You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何通过OSRMRoadManager获取步行路线?

如何用OSRMRoadManager指定获取步行路线?

当然可以指定获取步行路线,OSRMRoadManager支持通过设置出行配置文件切换路线类型,默认是驾车模式,只需在初始化RoadManager后添加一行代码指定步行配置即可。

修改后的代码实现

外部初始化部分:

RoadManager roadManager = new OSRMRoadManager(this);
// 指定步行路线配置
roadManager.setProfile(Profile.WALKING);

ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>();
GeoPoint startPoint = new GeoPoint(currentLocation.getLatitude(), currentLocation.getLongitude());
GeoPoint endPoint = new GeoPoint(destLocation.getLatitude(), destLocation.getLongitude());
waypoints.add(startPoint);
waypoints.add(endPoint);
asyncTask = new UpdateRoadTask(this, map);
asyncTask.execute(waypoints);

UpdateRoadTask内部修改:

注意在AsyncTask的doInBackground方法里,同样需要给新创建的RoadManager实例设置步行配置,否则会回到默认驾车模式:

protected Road doInBackground(Object... params) {
    ArrayList<GeoPoint> waypoints = (ArrayList<GeoPoint>)params[0];
    RoadManager roadManager = new OSRMRoadManager(mContext);
    // 设置步行路线配置
    roadManager.setProfile(Profile.WALKING);

    return roadManager.getRoad(waypoints);
}

注意事项

  • 确保导入正确的Profile类:import org.osmdroid.util.Profile;
  • 若使用的osmdroid版本较旧,Profile类可能在org.osmdroid.views.overlay.roadmanager包下,可根据实际情况调整导入路径

内容的提问来源于stack exchange,提问作者Mary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:02:40