2012-02-06 20 views
0

私のローカルデータベースに4つのロケーションの緯度と経度があります。これらのデータをフェッチして、アンドロイドの描画ルートパスに使用しますが、問題は最初の2番目のロケーションです。ルートは、第3経路経路から第3経路経路〜第4経路経路がマップビュー上に表示される。悪い英語のコミュニケーションで申し訳ありません。Mapviewの描画ルートのパス

私は次のリンクからコードを取得しています。

MapRoute Example

と、次の機能を使用して描画クラスを呼び出す: -

public void drawpath(){ 
     mDb.open(); 
     Cursor cr = mDb.getAllTitles(); 
     cr.moveToFirst(); 

     if (cr.getCount() > 0) { 
      for (int i = 0; i <= cr.getCount()/2; i++) { 
       fromlat = Double.parseDouble(cr.getString(1)); 
       fromlng = Double.parseDouble(cr.getString(2)); 
       cr.moveToNext(); 
       tolat = Double.parseDouble(cr.getString(1)); 
       tolng = Double.parseDouble(cr.getString(2)); 

       String url = RoadProvider 
         .getUrl(fromlat, fromlng, tolat, tolng); 
       InputStream is = getConnection(url); 
       mRoad = RoadProvider.getRoute(is); 
       MapOverlay mapOverlay = new MapOverlay(mRoad, mapView); 
       List<Overlay> listOfOverlays = mapView.getOverlays(); 
       listOfOverlays.add(mapOverlay); 
       mapView.invalidate(); 
      } 
     } 

     cr.close(); 
     mDb.close(); 
    } 
+0

これを参照してくださいhttp://stackoverflow.com/questions/8612524/android-url-to-access-kml-route – NagarjunaReddy

+0

私はそのコードを使用していますが、問題は同じです。唯一の第2の場所パスは表示されません他のものが表示されています... –

+0

これは、座標の半分だけをループするためです: 'cr.getCount()/ 2' – Reno

答えて

0
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345")); 
startActivity(intent); 
0

あなたがして、カウント数が偶数になりますときに、あなたがcr.getCount()/2.

を使用しているので、それが起こっていること正常に動作しません。

たとえば、4行の場合はcr.getCount()/2 = 2 です。したがって、ループは0から2まで3回続けます。 実際には、コードを2回続けてください。

latは奇数を5とします。cr.getCount()/2 = 2は整数値なので、ループは合計3回動作します。

あなたは異なる仕組みを持っています。

arraylistですべてのlatとlongを追加してから、ループが完了したようにします。

そのarrayListのサイズのループを作成し、パスを作成します。これは、前の緯度と経度を格納するための2つの追加変数が必要な場合があります。

関連する問題