[AndroidStudio,GoogleMap,Firebase,SpringBoot] KnockKnock 개발일지 - 0324 (실시간 위치 업데이트, 구글맵으로 찍은 좌표 주변 데이터 조회하기)

Hyebin Lee·2022년 3월 24일
1

knockknock 개발일지

목록 보기
26/29
post-thumbnail
post-custom-banner

오늘의 목표

  1. ✔실시간 위치 정보 업데이트 문제 해결하기
  2. ✔유저로부터 구글맵 좌표 설정값을 받을 fragment 새로 만들기
  3. ✔구글맵 좌표 설정값 가져오기
  4. ✔구글맵 좌표 설정값 or 유저의 현재 위치(default) 값으로 주변 데이터 조회하기

참고한 링크

안드로이드 구글 지도(Google Maps) API 활용 2 - 지도에 터치한 곳 위도 경도 구해서 마커(핀) 표시하기

오늘의 이슈

실시간 위치 정보 업데이트가 되지 않는 문제
💥[MySQL] 좌표 사이 거리 구하기 (+ 반경 내 좌표 조회) - 나중에 Point를 활용해서 lat,lon 변수 사용 고치고 쿼리문도 간단화하기, 일단은 구현에 목표를 두고 있어서 이건 생략!

실시간 위치 정보 업데이트

onLocationChanged와 RequestLocationUpdates

이 두 메서드를 혼동해서 문제가 발생했던 것이였다.
RequestLocationUpdates는 한 번만 실행되며 한 번 실행시 onLocationChanged를 반복적으로 실행하도록 조작해주는 메서드이다.
다시 말해서 반복적으로 실시간 위치가 체크되는 메서드는 onLocationChanged메서드이고 RequestLocationUpdates는 그것의 반복을 처음 실행시키는 트리거이다.

따라서 기존에 RequestLocationUpdate에 짰던 Firebase 위치 정보 업데이트 코드를 onLocationChanged로 옮겨 담았다.
또한 지금은 배포 전이라 집에서만 위치 확인을 하기 때문에 위치 업데이트가 firebase에 되는지 확인할 수 없어서 onLocationChanged가 호출될 때마다
count변수가 올라가도록 설정하고 위치변화 대신 firebase의 유저 정보에 count를 추가하여 count가 증가하는지 실시간으로 확인할 수 있었다.

@Override
    public void onLocationChanged(Location location) {

        lat = location.getLatitude();
        lon = location.getLongitude();
        Log.i("MyLocTest", "onLocationChanged() 호출되었습니다.");
        Log.i("MyLocTest","내 위치는 Latitude :" + lat + " Longtitude : " + lon);
        updateUserLocation(lat,lon);
        count++;
    }
   


당연히 로그도 잘 찍힌다! 문제 해결 완료💞💕

post-custom-banner

0개의 댓글