2011-12-05 2 views
0

내 주 Java 파일을 통해 오버레이를 호출하고 geopoint를 전달하는 것보다 선이 너무 가까이에 나타나지 않습니다. 상단 모서리에서 시작하여 화면 가운데로 이동합니다.geopoint에 따라 선이 오지 않습니다

는 Java1을 :

public class TourmapActivity extends MapActivity { 

    private MapView mapView; 

    private MyOverlay myOverlay; 

    private List<Overlay> mapOverlays; 

    /** Called when the activity is first created. */ 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      mapView = (MapView) findViewById(R.id.mapview);  
      mapView.setBuiltInZoomControls(true); 


     mapOverlays = mapView.getOverlays(); 
     myOverlay = new MyOverlay(mapView); 
     mapOverlays.add(myOverlay); 


    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     // TODO Auto-generated method stub 
     return false; 
    } 
} 

자바 2 : 공용 클래스 MyOverlay가 오버레이를 확장 {

private Point point1; 
    private Point point2; 
    private Projection projection; 

    public MyOverlay(MapView mapView){ 
     projection = mapView.getProjection(); 
    } 

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

     point1 = new Point(); 
     point2 = new Point(); 
     Path path = new Path(); 

     //43.26082327999097, -79.92047309875488 jhe 
     float longitude = 43.26082327999097f; // first point 
     float latitude = -79.92047309875488f; 

     //43.26347189172956, -79.91776943206787 student center 
     float longitude_1 = 43.26347189172956f; // second point 
     float latitude_1 = -79.91776943206787f; 




     GeoPoint geoPoint1 = new GeoPoint((int)(longitude * 1E6), (int)(latitude * 1E6)); 
     GeoPoint geoPoint2 = new GeoPoint((int)(longitude_1 * 1E6), (int)(latitude_1* 1E6)); 


     projection.toPixels(geoPoint1, point1); 
     projection.toPixels(geoPoint2, point2); 

     path.lineTo(point1.x, point1.y); 
     path.lineTo(point2.x, point2.y); 

     canvas.drawPath(path, paint); 
    } 
} 

답변

관련 문제