2012-05-09 12 views
1

運転の方向を描きたい元のジオポイントから目的地のジオポイントまでのルート。私は以下のコードでこれを試しましたが、適切な最短ルートではない場所の間に直線を描画します。運転の方向 - Google Map

@Override 
public void draw(Canvas canvas, MapView mapView, boolean shadow) { 
    // TODO Auto-generated method stub 
    super.draw(canvas, mapView, shadow); 

    Projection projection = classMapView.getProjection(); 

    Paint mPaint = new Paint(); 
     mPaint.setDither(true); 
     mPaint.setColor(Color.RED); 
     mPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
     mPaint.setStrokeJoin(Paint.Join.ROUND); 
     mPaint.setStrokeCap(Paint.Cap.ROUND); 
     mPaint.setStrokeWidth(2); 

     GeoPoint gP1 = new GeoPoint(22716221,75896816); 
     GeoPoint gP2 = new GeoPoint(22715212, 75895806); 

     Point p1 = new Point(); 
     Point p2 = new Point(); 

     Path path = new Path(); 

     projection.toPixels(gP1, p1); 
     projection.toPixels(gP2, p2); 

     path.moveTo(p2.x, p2.y); 
     path.lineTo(p1.x,p1.y); 

     canvas.drawPath(path, mPaint); 
} 

Googleマップで提供されているように方向性のテキストを取得することもできますし、教えてください。

答えて

2

を次のように2つの地理的位置の間でパスを描画する方法についてhttps://github.com/frogermcs/RoutePathExampleでの完全なソースコードであることを行うために意図を使用することができます。

+0

ありがとうMurat Nafiz –

+0

@Murat Nafizもう有効なリンクはありません。 – divy3993

3

Google Policies

を通過してくださいこれは、ターンバイターン ナビゲーションはアンドロイドのMapViewを使用して許可されていないと述べています。

代わりに、あなたはここで

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr=<start lat>,<start lon>&daddr=<dest lat>,<dest lon>")); 
startActivity(intent); 
+0

これを達成する他の方法はありませんか? –

+0

[こちら](http://blog.synyx.de/2010/06/routing-driving-directions-on-android-%E2%80%93-part-2-draw-the-route/)にご確認ください。このようなことを実装する前に、Googleポリシーのセクション8をお読みください。あなたはandroid mapViewで事前の許可なく道順を使うことはできません。 – silwar