【发布时间】:2014-04-20 13:11:13
【问题描述】:
我无法在 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 我得到了路由信息。道路的 mStatus 为 STATUS_OK,当我调试代码时,我可以看到路线的各个部分。 路线绘制函数如下:
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(目的地)。另一条折线追踪到屏幕的右下角并离开当前可见的地图区域,当我缩小到世界地图时,它一直延伸到南极洲地图的边缘。 当我删除这两行时
current_route.addPoint(user_point);
和
current_route.addPoint(clicked_location);
那么地图上没有绘制折线。我已经调试了 current_route 的内容(它是 PathOverlay 类型),并且 mPoints 数组中的点是有效的 GeoPoints,即不为空。当我将这些 GeoPoints 映射到 https://maps.google.com/ 的 Google 地图上时,它显示这些 GeoPoints 是 GeoPoint user_point(起点)和 GeoPoint clicked_location(目的地)之间的道路/路线上的有效位置。
有没有人遇到同样的问题并设法解决它?
【问题讨论】: