2011-04-14 3 views
1

bien, im un begginer dans android et j'ai besoin d'utiliser des cartes sur l'appareil plus spécifiquement (polylignes) j'ai besoin de faire quelque chose comme ça. Javascript Api maps appcartes Android polylines api

Ceci est une application web que j'ai fait pour traquer les lignes de bus et les arrêts de bus sur ma ville, et on m'a demandé de faire la même chose dans Android! ive été en vérifiant les cartes api pour android et n'a pas trouvé quelque chose de similaire à polyline dans JS api, y at-il un moyen d'y parvenir? Je n'ai aucun problème à ajouter des superpositions simples J'ai vérifié les tutoriels de base dans le site développeur Android, mais je ne sais pas comment dessiner la polyligne.

Répondre

1

Il n'existe aucune API de ce type dans l'API Google Maps Android. Vous pouvez d'abord lister les GeoPoints réels de l'itinéraire que vous souhaitez dessiner, puis dessiner les points et les lignes sur un objet Overlay. Il n'y a pas de moyen facile de le faire.

0

Un moyen plus simple de faire cela est d'obtenir vos points et d'étendre ImageView qui affichera votre image pour dessiner les points, que vous avez juste besoin de passer les points que vous voulez dessiner.

Dans mon projet, je l'ai fait:

public class ImageDraw extends ImageView{ 
private Paint mPaint = new Paint(); 
List<Point> pts = new ArrayList<Point>() ; 

public ImageDraw(Context context) { 
    super(context); 

} 
//used to send the location of the points to draw on the screen 
//must be called before every redraw to update the points on the screen 
public void SetPointsToDraw(List<Point> pts) 
{ 
    this.pts = pts; 
} 


public ImageDraw(Context context, AttributeSet attrs) 
{ 
    super(context,attrs); 
} 
public ImageDraw(Context context, AttributeSet attrs, int defStyle) 
{ 
    super(context, attrs, defStyle); 
} 

@Override 
public void onDraw(Canvas canvas) 
{ 
    super.onDraw(canvas); 

    Paint paintColor = mPaint; 
    paintColor.setColor(Color.YELLOW); 
    paintColor.setStrokeWidth(3); 


    if(pts.size() > 0) 
    { 
     canvas.drawCircle(pts.get(0).x, pts.get(0).y, 7, paintColor); 
    } 
    if (pts.size() > 1) 
    { 
     for (int i = 1 ; i < pts.size(); i++) { 
      paintColor.setColor(Color.YELLOW); 
      canvas.drawCircle(pts.get(i).x, pts.get(i).y, 7, paintColor); 
      paintColor.setColor(Color.RED); 
      canvas.drawLine(pts.get(i-1).x, pts.get(i-1).y, pts.get(i).x, pts.get(i).y, paintColor); 
     } 
    } 


} 

}

Lorsque vous Prolonge la Imageview et de créer la mise en page avec xml À ne pas oublier de mettre le paquet entier de vous comme nouveau widget: com.Myapp.MyImageView

+0

pour de vrai? juste comme ça? Je vérifierai! Merci beaucoup! – Gustavo