Android 无法在Osmdroid地图上显示路线

Android 无法在Osmdroid地图上显示路线,android,osmdroid,Android,Osmdroid,我无法在Android 4.3智能手机上显示的Osmdroid地图上显示路线。 我使用的是OSMBonuspackV4.4JAR和osmdroid android v4.1JAR。我已将OSRMRoadManager重写/复制到CarRouteManager,以便它使用java.net.HttpURLConnection而不是Apache HTTPConnection。使用ApacheHttpConnection,我不会返回任何路由信息,但使用java.net.HttpURLConnection

我无法在Android 4.3智能手机上显示的Osmdroid地图上显示路线。 我使用的是OSMBonuspackV4.4JAR和osmdroid android v4.1JAR。我已将OSRMRoadManager重写/复制到CarRouteManager,以便它使用java.net.HttpURLConnection而不是Apache HTTPConnection。使用ApacheHttpConnection,我不会返回任何路由信息,但使用java.net.HttpURLConnection,我会返回路由信息。这条路有一个状态为“OK”的mStatus,我在调试代码时可以看到路线的各个部分。 管线绘制功能如下所示:

public void DrawDirection(Road road)
{
    if (road.mStatus == Road.STATUS_OK)
    {
        current_route = CarRouteManager.buildRoadOverlay(road, Color.BLUE, 3, this);
        current_route.addPoint(user_point);
        current_route.addPoint(clicked_location);
        map_view.getOverlays().add(current_route);          
        map_view.invalidate();
    }
}
使用上面的代码,我只在地图上显示了两条多段线,一条直接从地质点用户点(起点)追踪到地质点位置(终点)。另一条多段线跟踪到屏幕的右下角,并离开当前可见的地图区域,当我缩小到世界地图时,它会一直延伸到Antartica地图的边缘之外。 当我删除这两行

当前路由。添加点(用户点)

当前路径。添加点(单击位置)

那么地图上就没有绘制多段线了。我已经调试了当前_路由(PathOverlay类型)的内容,mPoints数组中的点是有效的地理点,即不为空。当我将这些地质点映射到Google地图上时,它会显示这些地质点是地质点用户点(起点)和地质点位置(终点)之间道路/路线上的有效位置


是否有人遭受过同样的影响并设法解决了它?

我建议您:

  • 扔掉你的东西
  • 只需密切关注
  • 注意教程开始时的“重要注意事项”
如果您仍然有问题,请查看以下内容:


只有当您更好地理解库的内部行为时,您才能实现自己的RouteManager(如果真的需要)

我在浏览器中粘贴url得到的json文件返回时,有些街道名称为空,但前三个“部分”有街道名称。至少这三条路径应该显示在地图上?忘了添加缺少的街道名称在json文件的route_instructions部分。使用OsmbonusPackturial并将其放置在我希望绘制路线的两个地质点的坐标中,我绘制了一条漂亮的路线。如果我用OSRMRoadManager替换我的CarRouteManager,并使用与OSMBonusPackTutorial中完全相同的代码部分(注释1.和注释2.),我返回的道路具有默认状态的mStatus,并且没有绘制路线。缩放级别和平铺源相同。