안드로이드 개발 질문/답변
(글 수 45,052)
맵뷰를 띄운상태에서 현재위치도 보고, 버튼을 누르면 현재 좌표를 불러오려고합니다.
그런데
맵뷰에서 띄워준 현재위치는 움직임을 잘감지합니다. 건물을 한바퀴 돌았는데 잘따라왔고요,
그러는 중간중간 gps의 좌표를 찍어주는데 영 안맞네요...
mapview
mMap = (MapView)findViewById(R.id.mapview);
mMapOverlays = mMap.getOverlays();
mLocation = new MyLocationOverlay2(this, mMap);
List<Overlay> overlays = mMap.getOverlays();
overlays.add(mLocation);
mLocation.runOnFirstFix(new Runnable() {
public void run() {
mMap.getController().animateTo(mLocation.getMyLocation());
}
});
class MyLocationOverlay2 extends MyLocationOverlay {
public MyLocationOverlay2(Context context, MapView mapView) {
super(context, mapView);
}
protected boolean dispatchTap() {
Toast.makeText(SendCordData.this, "여기가 현재 위치입니다.", Toast.LENGTH_SHORT).show();
return false;
}
}
locationListener
LocationListener mListener = new LocationListener() {
DecimalFormat df = new DecimalFormat("###.######");
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
myLong = df.format(location.getLongitude());
myLat = df.format(location.getLatitude());
Toast.makeText(SendCordData.this, "onLocationChanged / myLong ; " + myLong + " / myLat ; " + myLat, Toast.LENGTH_SHORT).show();
}
}
btn_refresh.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
mLocMan.requestLocationUpdates(mProvider, 1, 1, mListener);
}
});
위에는 맵뷰고요, 아래는 좌표가 업데이트되면 찍어주는부분이고요, 버튼으로 업데이트를 시켜주긴합니다.
제가 알기로는 onLocationChanged가 좌표 변화가 없으면 update를 안한다고 들었는데
현재위치는 참 잘따라다닌단 말이죠..ㅠ
아시는분 답변 부탁드려요!!



