2012-03-19 4 views
1

私は2点(場所)の間の線をプロットしましたが、私はそれらの点にマーカーをプロットする方法を知らない。誰でも私にいくつかのアイデアを教えてもらえますか?マーカーを2箇所にプロットする方法は? - android

public void drawPath(MapView mv, Canvas canvas) 
    { 
     int x1 = -1, y1 = -1, x2 = -1, y2 = -1; 
     Paint paint = new Paint(); 
     paint.setColor(Color.GREEN); 
     paint.setStyle(Paint.Style.STROKE); 
     paint.setStrokeWidth(3); 
     for (int i = 0; i < mPoints.size(); i++) 
     { 
      Point point = new Point(); 
      mv.getProjection().toPixels(mPoints.get(i), point); 
      x2 = point.x; 
      y2 = point.y; 
      if (i > 0) 
      {   
       canvas.drawLine(x1, y1, x2, y2, paint); 
      } 
      x1 = x2; 
      y1 = y2;    
     } 
    } 

答えて

0

ラインの開始点と終了点にオーバーレイを追加できます。ここで

は一例です。これはあなたを助けることを願っています。..

RouteActivity.java

public class RouteActivity extends MapActivity 
    { 

     private List<Overlay> mapOverlays; 
     private Projection projection; 

     MapView mapView; 

     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
     Drawable drawable = this.getResources().getDrawable(R.drawable.pin); // Marker that you want to display.. 
     mapOverlays = mapView.getOverlays(); 

     List<Overlay> mapOverlays = mapView.getOverlays();  
       MyOverlay itemizedoverlay = new MyOverlay(drawable,this); 

       GeoPoint point = new GeoPoint(19240000,-99120000); // overlay 1 
       OverlayItem overlayitem = new OverlayItem(point, null, null); 

       GeoPoint point1 = new GeoPoint(44046665, 72559236); // overlay 2 
       OverlayItem overlayitem1 = new OverlayItem(point1, null, null);   

       itemizedoverlay.addOverlay(overlayitem);   
       itemizedoverlay.addOverlay(overlayitem1); 
       mapOverlays.add(itemizedoverlay); 
} 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 

} 

MyOverlay.java

public class MyOverlay extends ItemizedOverlay 
{ 
    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
    Context mContext; 

    public MyOverlay(Drawable defaultMarker) 
     { 
      super(boundCenterBottom(defaultMarker)); 
     } 

    public MyOverlay(Drawable defaultMarker, Context context) { 
     // super(defaultMarker); 
     super(boundCenterBottom(defaultMarker)); 
      mContext = context; 
     } 

     public void draw(Canvas canvas, MapView mapv, boolean shadow) 
     { 
      super.draw(canvas, mapv, shadow); 

      // line drawing code goes here..... 

      canvas.drawPath(path, mPaint); 
     } 

     @Override 
     protected OverlayItem createItem(int i) { 
      // TODO Auto-generated method stub 
      return mOverlays.get(i); 
     } 

     @Override 
     public int size() { 
      // TODO Auto-generated method stub 
      return mOverlays.size(); 
     } 

     public void addOverlay(OverlayItem overlay) { 
      mOverlays.add(overlay); 
      populate(); 
     } 

} 

おかげで...

+0

はどうもありがとうございました.... –

関連する問題