2010-08-19 2 views
0

Android 애플리케이션에서 mapView의 위도와 경도의 중심을 지속적으로 업데이트하는 가장 좋은 방법은 무엇입니까?지도를 이동할 때마다 Mapview 중심의 위도/경도를 업데이트하는 방법

지도 상단에 표시된 레이블에 표시해야합니다. MapViewObject.getMapCenter()에지도 중심의 GeoPoint를 호출 할 수 있다는 것을 알고 있지만 사용자가지도를 이동하거나 확대/축소 할 때마다 어디에서 호출해야하는지 알 수 있습니까?

답변

1

결국 오버레이의 그리기 방법에서 getMapCenter에 대한 호출을 추가하여 직접 질문에 대답했습니다.

public MyOverlay(TextView lblCoords) { 
     super(); 
     coordinateLabel = lblCoords; 
    } 

    @Override 
     public void draw(Canvas canvas, MapView mapView, boolean shadow) { 
      super.draw(canvas, mapView, shadow); 
      currentCenter = mapView.getMapCenter(); 
      latitude = currentCenter.getLatitudeE6()/1E6; 
      longitude = currentCenter.getLatitudeE6()/1E6; 
      coordinateLabel.setText("lat: " + latitude + " long: " + longitude); 
    } 

또한 MapView 클래스를 확장 할 수 있으며이 사용자가 화면을 이동하는 경우에만 업데이트됩니다 있도록 onInterceptTouchEvent 방법에 좌표 코드를 삽입. onDraw가 지속적으로 호출되기 때문에 오버레이 onDraw에 배치하는 것보다 더 효율적입니다.

+0

결국이 메소드에 카운터를 추가하여 모든 호출을 호출하지 않았습니다. 대부분의 응용 프로그램에는 10 ~ 20 건의 통화로 충분합니다. –