MyLocationOverlay 을 사용하여 MapView에서 자신의 위치를 쉽게 보여줄 수 있다.
아래는 GPS 관련 예제 프로그램을 만들던 중, 정리한 MyLocationOverlay 사용 예제...
아래는 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.
}