2012-07-24 3 views
1

나는 우리의 지역 산악 자전거 산책로의지도에 안드로이드 애플 리케이션을 만들고 있습니다. 좌표는 KML 파일에서 가져온 것입니다. 지금까지 저는 11 개의 GeoPoint에 대한 경로를 작성하고 작성했습니다. 그러나,지도에 수백 개의 좌표가 있습니다. 지금까지 내가 한 것에 대한 나의 코드가있다. 이 방법이 효과적이지만 매우 지루하고 수백 가지 더 할 일이 있습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 내 오버레이 클래스가 내 kml 파일에서 좌표를 읽을 수있는 방법이 있습니까? 다른 아이디어 나 생각은 감사합니다.안드로이드에서 kml 좌표 그리기

public void draw(Canvas canvas, MapView mapView, boolean shadow) { 
    super.draw(canvas, mapView, shadow); 
    Paint paint; 
    paint = new Paint(); 
    paint.setDither(true); 
    paint.setColor(Color.RED); 
    paint.setStyle(Paint.Style.FILL_AND_STROKE); 
    paint.setStrokeJoin(Paint.Join.ROUND); 
    paint.setStrokeWidth(2); 

    GeoPoint gp1 = new GeoPoint(43311836,-91777756); 
    GeoPoint gp2 = new GeoPoint(43311718,-91777699); 
    GeoPoint gp3 = new GeoPoint(43311718,-91777699); 
    GeoPoint gp4 = new GeoPoint(43311666,-91777627); 
    GeoPoint gp5 = new GeoPoint(43311624,-91777541); 
    GeoPoint gp6 = new GeoPoint(43311582,-91777455); 
    GeoPoint gp7 = new GeoPoint(43311533,-91777369); 
    GeoPoint gp8 = new GeoPoint(43311489,-91777249); 
    GeoPoint gp9 = new GeoPoint(43311445,-91777136); 
    GeoPoint gp10 = new GeoPoint(43311404,-91776996); 
    GeoPoint gp11 = new GeoPoint(43311410,-91776891); 
    Point pt1 = new Point(); 
    Point pt2 = new Point(); 
    Point pt3 = new Point(); 
    Point pt4 = new Point(); 
    Point pt5 = new Point(); 
    Point pt6 = new Point(); 
    Point pt7 = new Point(); 
    Point pt8 = new Point(); 
    Point pt9 = new Point(); 
    Point pt10 = new Point(); 
    Point pt11 = new Point(); 

    Path path1 = new Path(); 
    Path path2 = new Path(); 
    Path path3 = new Path(); 
    Path path4 = new Path(); 
    Path path5 = new Path(); 
    Path path6 = new Path(); 
    Path path7 = new Path(); 
    Path path8 = new Path(); 
    Path path9 = new Path(); 

    projection.toPixels(gp1,pt1); 
    projection.toPixels(gp2, pt2); 
    projection.toPixels(gp3, pt3); 
    projection.toPixels(gp4, pt4); 
    projection.toPixels(gp5, pt5); 
    projection.toPixels(gp6, pt6); 
    projection.toPixels(gp7, pt7); 
    projection.toPixels(gp8, pt8); 
    projection.toPixels(gp9, pt9); 
    projection.toPixels(gp10, pt10); 
    projection.toPixels(gp11, pt11); 

    path1.moveTo(pt1.x, pt1.y); 
    path1.lineTo(pt2.x, pt2.y); 

    path2.moveTo(pt3.x,pt3.y); 
    path2.lineTo(pt4.x, pt4.y); 

    path3.moveTo(pt4.x,pt4.y); 
    path3.lineTo(pt5.x,pt5.y); 

    path4.moveTo(pt5.x, pt5.y); 
    path4.lineTo(pt6.x, pt6.y); 

    path5.moveTo(pt6.x, pt6.y); 
    path5.lineTo(pt7.x, pt7.y); 

    path6.moveTo(pt7.x, pt7.y); 
    path6.lineTo(pt8.x, pt8.y); 

    path7.moveTo(pt8.x, pt8.y); 
    path7.lineTo(pt9.x, pt9.y); 

    path8.moveTo(pt9.x,pt9.y); 
    path8.lineTo(pt10.x, pt10.y); 

    path9.moveTo(pt10.x, pt10.y); 
    path9.lineTo(pt11.x, pt11.y); 

    canvas.drawPath(path1, paint); 
    canvas.drawPath(path2, paint); 
    canvas.drawPath(path3, paint); 
    canvas.drawPath(path4, paint); 
    canvas.drawPath(path5, paint); 
    canvas.drawPath(path6, paint); 
    canvas.drawPath(path7, paint); 
    canvas.drawPath(path8, paint); 
    canvas.drawPath(path9, paint); 

    } 
} 

답변

0

KML 파일을 읽고 포인트를 반복 할 수 없습니까?

+0

죄송합니다. 앱 프로그래밍이 처음입니다. 어떻게 할거 니? –

+0

여기에 대한 답변으로 설명 할 수있는 것 이상입니다. 정말로 자바에 대한 책을 얻어야합니다. – CaseyB

+0

동의합니다. 참조 할 소스가 있습니까? –

관련 문제