마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Google map v2 에서 사용가능한 Listener 질문드립니다.

0 추천

public class MapFragment extends Fragment {
 
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

        this.activity = activity;

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_map, container, false);

        int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(activity);

        if(status != ConnectionResult.SUCCESS) {
            int requestCode = 10;
            Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status,activity,requestCode);
            dialog.show();
        } else {
            SupportMapFragment supportMapFragment = (SupportMapFragment) ((MyActivity) activity).getSupportFragmentManager().findFragmentById(R.id.map);
            map = supportMapFragment.getMap();

            CurListener = new CurrentLocationListener();
 

            map.setMyLocationEnabled(true);
            locationTag = true;
            map.setOnMyLocationChangeListener(CurListener);


        }

        return view;
    }


    private class CurrentLocationListener implements GoogleMap.OnMyLocationChangeListener{
        @Override
        public void onMyLocationChange(Location location) {

            double lat = location.getLatitude();
            double lng = location.getLongitude();

        if(locationTag) {
            LatLng latLng = new LatLng(lat, lng);
            map.moveCamera(CameraUpdateFactory.newLatLng(latLng));
            map.animateCamera(CameraUpdateFactory.zoomTo(16));


            locationTag = false;
        }

            Log.d(TAG,"lat : " + lat + ", lng : " + lng);
      }
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        FragmentManager fm = ((MyActivity)activity).getSupportFragmentManager();
        Fragment fragment = (fm.findFragmentById(R.id.map));
        FragmentTransaction ft = fm.beginTransaction();
        ft.remove(fragment);
        ft.commit();
    }

    @Override
    public void onDetach() {
        super.onDetach();
    }
}

google map v2 에서는 사용자 위치값 업데이트 될때마다 호출되는 리스너를 setOnMyLocationChangeListener 이것만 사용 가능한가요? requestLocationUpdates 와 Criteria를 사용하면 구글맵이 실행될때 현재위치로 가지 않더라구요.

 

우랴 (3,680 포인트) 님이 2014년 6월 20일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...