2014-02-19 17 views
1

it show straight line如何在我的OSM應用

在日誌顯示路線

02-19 14:41:29.151 10336-10336/com.example.app E/BONUSPACK﹕ OSRMRoadManager::getRoad: request failed. 

02-19 14:41:29.151 10336-10336/com.example.app I/System.out﹕ 2 

,我有route.gpx文件,但我不知道如何使用它

GeoPoint startPoint = new GeoPoint(48.13, -1.63); 

    mapView = (MapView) findViewById(R.id.mapview); 
    mapCTRL = (MapController) mapView.getController(); 

    mapCTRL.setZoom(13); 
    mapView.setBuiltInZoomControls(true); 
    mapCTRL.setCenter((new GeoPoint(startPoint))); 

    RoadManager roadManager = new OSRMRoadManager(); 
    ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>(); 
    waypoints.add(startPoint); 
    //waypoints.add(new GeoPoint(16.236505, 103.264646)); //end point บ้านดินดำ 
    waypoints.add(new GeoPoint(48.4, -1.9)); //end point 

    Road road = roadManager.getRoad(waypoints); 
    System.out.println(road.mStatus); 

    Polyline roadOverlay = RoadManager.buildRoadOverlay(road, this); 
    mapView.getOverlays().add(roadOverlay); 
    mapView.invalidate(); 

    setContentView(mapView); 

    mapView.invalidate(); 
+0

您是否考慮過使用osmdroid獎勵套餐? http://code.google.com/p/osmbonuspack/ – MaM

+0

@MaM是的,我想要顯示A到B之間的路線方向 – illnino

+0

@illnino如何使用OSM API設置源座標和目標座標,它是什麼? –

回答

1

假設你計劃要使用在線路由服務,這個問題應該鏈接到這一個: RoadManager for osmdroid error

假設您希望有一個脫機路由系統,那麼使用OSRMRoadManager(使用OSRM聯機服務)是無關緊要的。您可以看看離線路由軟件,如GraphHopper。

+0

非常感謝 – illnino

0
new Thread(new Runnable() 
{ 
    public void run() 
    { 
     RoadManager roadManager = new OSRMRoadManager(); 
     ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>(); 
     GeoPoint startPoint = new GeoPoint(source_lat, source_longi);    
     waypoints.add(startPoint); 
     GeoPoint endPoint = new GeoPoint(desti_lat,desti_longi); 
     waypoints.add(endPoint);      
     try 
     { 
      road = roadManager.getRoad(waypoints); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 

     runOnUiThread(new Runnable() 
     { 
      public void run() 
      { 
       if (road.mStatus != Road.STATUS_OK) 
       { 
         //handle error... warn the user, etc. 
       } 

       Polyline roadOverlay = RoadManager.buildRoadOverlay(road, Color.RED, 8, context); 
       map.getOverlays().add(roadOverlay);     
      } 
     }); 
    } 
}).start(); 

And i am use two jar files 1)slf4j-android-1.5.8.jar and 2)osmdroid-android-4.2.jar and osmbonuspack library.