我无法在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(目标)之间的道路/路线上的有效位置。
有没有人受到同样的影响并设法解决它?
答案 0 :(得分:1)
我建议你:
如果您仍有问题,请查看此处: RoadManager for osmdroid error
只有当您更好地理解lib的内部行为时,您才能实现自己的RouteManager(如果真的需要)。