无法在Osmdroid地图上显示路线

时间:2014-04-20 13:11:14

标签: android osmdroid

我无法在Android 4.3智能手机上显示的Osmdroid地图上显示路线。 我正在使用osmbonuspack v4.4 jar和osmdroid-android v4.1 jar。我已经将OSRMRoadManager覆盖/复制到CarRouteManager,以便它使用java.net.HttpURLConnection而不是Apache HTTPConnection。使用Apache HTTPConnection我没有得到任何路由信息,但是使用java.net.HttpURLConnection我得到了路由信息。这条路有一个STAT状态的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();
    }
}

使用上面的代码,我只得到地图上显示的两条折线,一条直线从GeoPoint user_point(起点)到GeoPoint clicked_location(目的地)。另一条折线跟踪到屏幕的右下角并且离开当前可见的地图区域,当我缩小到世界地图时,它会一直延伸到Antartica地图的边缘。 当我删除两行

  

current_route.addPoint(user_point);

  

current_route.addPoint(clicked_location);

然后地图上没有绘制折线。我调试了current_route(类型为PathOverlay)的内容,mPoints数组中的点是有效的GeoPoints,即不为null。当我将这些GeoPoints映射到https://maps.google.com/的Google地图上时,它会显示这些GeoPoints是GeoPoint user_point(起始点)和GeoPoint clicked_location(目标)之间的道路/路线上的有效位置。

有没有人受到同样的影响并设法解决它?

1 个答案:

答案 0 :(得分:1)

我建议你:

  • 摆脱你的CarRouteManager东西
  • 密切关注OSMBonusPack tutorial
  • 关注"重要提示"在教程的最开始。

如果您仍有问题,请查看此处: RoadManager for osmdroid error

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