2014-07-15 177 views
0

開發一個Android應用程序以繪製四條以上的線條並將它們連接起來以顯示爲多邊形。使用角度我找到座標在哪裏開始和結束線,然後我繪製mapview。但我的需要是,多邊形從底部開始第一行(與設備水平)。如何重新定位線路?幫我找到一個解決辦法..在mapview上重繪繪製的線

的圖像顯示了我真正的需要..

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

代碼:

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

你有什麼試過在這裏發佈你的代碼 –

回答

0

您可以使用下面的代碼 -

  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

非常感謝你的回覆,但它只是畫線。不要在基地畫第一行。你看到我上傳的圖片了嗎?這是我的需要先生。 – user3647272

+0

yes.but我沒有得到什麼確切的不要在基地畫第一行。是什麼? –

+0

在你的情況下,我認爲首先你必須得到2個相同的位置,在x軸上相同。拉線只取緯度和經度的位置。你必須決定哪個位置在哪個順序中你必須通過繪製線 –