본문 바로가기
Study/Android

Google map Location (구글맵 위치) - setMyLocationChangeListener

by Answer Choi 2015. 10. 26.
반응형


구글맵에서 자신의 위치를 가져오는 방법이 몇가지 있습니다.


그 첫번째는 setMyLocation을 이용한 위치입니다.



구글지도에서 흔히 볼 수 있는 저 파란 점이 나오고 현재위치를 표시해 주는 지도입니다.


이건 위치외에 다른 정보는 없어서 추천하지 않지만 쉽게 구현할 수 있습니다.




간단하게 setMyLocationEnabled 만 하면 지도에 파란점과 현위치 찾기 버튼이 나타납니다.


1
myMap.setMyLocationEnabled(true);
cs

 

사용하지 않을때에는


1
myMap.setMyLocationEnabled(false);
cs


myMap은 GoogleMap입니다.


여기까지하면 지도에서 현재위치에 파란점을 표시를 해줍니다.


하지만 위치가 바뀌면 지도가 움직이지는 않습니다. 그에 따른 코드를 작성해 줘야 합니다.


바로 OnMyLocationChangeListener를 사용하는 것입니다.



이 메소드는 지도에 나타나는 파란점의 위치가 바뀔때마다 호출이 됩니다.


(사실 위치가 바뀌면 파란점을 찍어주고, OnMyLocationChangeListener도 호출됩니다.)


일단 interface로 OnMyLocationChangeListener를 추가해 줍니다.


1
public class runningFrag  extends Fragment implements GoogleMap.OnMyLocationChangeListener {
cs


그리고 callback 콜벡 되도록 리스너를 사용등록해줍니다.


1
myMap.setOnMyLocationChangeListener(this);
cs


마지막으로 implements override를 추가해 줍니다.


1
2
3
4
5
6
7
8
@Override
    public void onMyLocationChange(Location location) {
        double d1=location.getLatitude();
        double d2=location.getLongitude();
        Log.e("onMyLocationChange", d1 + "," + d2);
        myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(d1, d2), 18));
    }
 
cs


Line 3~4 : 바뀐위치의 latitude값과 longitude값을 가져옵니다.


Line 6 : 지도를 가져온 위치로 이동시킵니다.

반응형

인기글