2014-07-15 5 views
0

Développer une application Android pour dessiner plus de quatre lignes et les relier pour qu'elles apparaissent comme des polygones. En utilisant l'angle, je trouve les coordonnées où commencer et terminer la ligne, puis je dessine sur mapview. Mais mon besoin est de, le polygone commence la première ligne de la base (qui est horizontale à l'appareil). Comment repositionner la ligne? Aidez-moi à trouver une solution ..Redessiner la ligne tracée sur la carte

L'image montre mon vrai besoin ..

http://tinypic.com/view.php?pic=rbgoix&s=8#.U8S6NZSSy80

code:

m=0; 
x[m]= (dis[m]*1000)*Math.sin((angle1[m])*Math.PI/180); 
y[m]= (dis[m]*1000)*Math.cos((angle1[m])*Math.PI/180); 
GeoPoint g = new GeoPoint((int)(x[m]),(int)(y[m])); 
Point p=new Point(); 
projection.toPixels(g, p); 
Path path=new Path(); 
    l=pp.x; 
    o=pp.y; 

for(m=1;m<j+1;m++) 
{ 
x[m]= (dis[m]*1000)*Math.sin((angle1[m])*Math.PI/180); 
y[m]= (dis[m]*1000)*Math.cos((angle1[m])*Math.PI/180); 
GeoPoint g1 = new GeoPoint((int)(x[m]),(int)(y[m])); 
Point p1=new Point(); 
projection.toPixels(g1, p1); 
Path path1=new Path(); 
if(m!=j) 
{ 
path1.moveTo(p.x, p.y); 
path1.lineTo(p1.x, p1.y); 
canvas.drawPath(path1, mPaint); 
    lPaint.setTextAlign(Paint.Align.CENTER); 
    canvas.drawTextOnPath((sf.format(distance[m-1])).toString()+" ,"+m+" ,"+v[m], path1,10 ,20, lPaint); 
} 
else 
{ 
p1.x=l; 
p1.y=o; 
path1.moveTo(p1.x, p1.y); 
path1.lineTo(pp.x, pp.y); 
canvas.drawPath(path1, mPaint); 
    lPaint.setTextAlign(Paint.Align.CENTER); 
    canvas.drawTextOnPath((sf.format(distance[m-1])).toString()+" ,"+m, path1,10 ,20, lPaint); 
} 
//Toast.makeText(getApplicationContext(),"Angle"+distance[m], Toast.LENGTH_SHORT).show(); 
    p.x=p1.x; 
    p.y=p1.y; 

}

+0

ce que vous avez essayé poster votre code ici –

Répondre

0

Vous pouvez utiliser le code ci-dessous -

  ArrayList<LatLng> points = null; 
      // Traversing through all the routes 
      for(int i=0;i<result.size();i++){ 
       points = new ArrayList<LatLng>(); 
       lineOptions = new PolylineOptions(); 
       // Fetching i-th route 
       List<HashMap<String, String>> path = result.get(i); 

       // Fetching all the points in i-th route 
       for(int j=0;j<path.size();j++){ 
        HashMap<String,String> point = path.get(j);     
        // Here add your latitude & longitude of locations 
        /*double lat = Double.parseDouble(point.get("lat")); 
        double lng = Double.parseDouble(point.get("lng")); 
        LatLng position = new LatLng(lat, lng); */ 
        points.add(position);      
       } 

       // Adding all the points in the route to LineOptions 
       lineOptions.addAll(points); 
       lineOptions.width(5); 
       lineOptions.color(Color.BLUE); 

      } 
      map.addPolyline(lineOptions); 
+0

Merci beaucoup pour votre réponse, mais il ne dessine ligne. Ne dessinez pas la première ligne sur la base. Avez-vous vu l'image que j'ai téléchargée? C'est mon besoin monsieur. – user3647272

+0

oui.mais je ne comprends pas exactement Ne dessine pas la première ligne sur la base. est? –

+0

Dans votre cas, je pense d'abord que vous devez obtenir 2 emplacements qui sont identiques sur l'axe des x. La ligne de dessin ne prend que la latitude et la longitude des emplacements.Vous devez décider quels emplacements vous devez passer pour la ligne –

Questions connexes