2014-07-15 3 views
0

4 개 이상의 선을 그려서 각 선을 다각형으로 표시하도록 Android 앱을 개발합니다. 각도를 사용하여 선을 시작하고 끝낼 좌표를 찾은 다음 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

예.하지만 정확하게 기지에 첫 번째 라인을 그리지 마세요. 뭐야? –

+0

귀하의 경우에 나는 먼저 x 축에서 동일하게 2 개 위치를 가져야한다고 생각합니다. 선의 위도와 경도 만 가져 오십시오. 어느 선이 어떤 순서로 그리기 선을 통과해야하는지 결정해야합니다. –