MyLocationOverlay 을 사용하여 MapView에서 자신의 위치를 쉽게 보여줄 수 있다.

아래는 GPS 관련 예제 프로그램을 만들던 중, 정리한 MyLocationOverlay 사용 예제...

01.public class MapViewerActivity extends MapActivity {
02.    private static final String TAG = "MapViewerActivity";
03. 
04.    private MapView mMapView;
05.    private MapController mMapController;
06. 
07.    private PowerManager.WakeLock mWakeLock;
08. 
09.    private MyLocationOverlay mMyLocationOverlay;
10. 
11.    @Override
12.    protected void onCreate(Bundle savedInstanceState) {
13.        super.onCreate(savedInstanceState);
14.        setContentView(R.layout.map_viewer);
15. 
16.        mMapView = (MapView) findViewById(R.id.mapView);
17.        mMapView.setBuiltInZoomControls(true);
18.        mMapView.displayZoomControls(true);
19. 
20.        mMapController = mMapView.getController();
21.        mMapController.setZoom(12);
22. 
23.        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
24.        mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK,
25.                "PowerManager.WakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK)");
26. 
27.        setMyLocationOverlay();
28.    }
29. 
30.    @Override
31.    protected void onResume() {
32.        super.onResume();
33. 
34.        mWakeLock.acquire();
35. 
36.        if (mMyLocationOverlay == null) {
37.            mMyLocationOverlay = new MyLocationOverlay(this, mMapView);
38.        }
39.        mMyLocationOverlay.enableMyLocation();
40.    }
41. 
42.    @Override
43.    protected void onPause() {
44.        super.onPause();
45. 
46.        if (mMyLocationOverlay != null) {
47.            mMyLocationOverlay.disableMyLocation();
48.        }
49. 
50.        mWakeLock.release();
51.    }
52. 
53.    @Override
54.    protected boolean isRouteDisplayed() {
55.        return false;
56.    }
57. 
58.    private void setMyLocationOverlay() {
59.        mMyLocationOverlay = new MyLocationOverlay(this, mMapView);
60.        mMyLocationOverlay.enableMyLocation();
61.        // mMyLocationOverlay.enableCompass();
62. 
63.        mMyLocationOverlay.runOnFirstFix(new Runnable() {
64.            public void run() {
65.                mMapController.animateTo(mMyLocationOverlay.getMyLocation());
66.            }
67.        });
68. 
69.        mMapView.getOverlays().add(mMyLocationOverlay);
70.    }
71.}



Posted by Huikyun