본문 바로가기

ANDROID

[안드로이드] 구글맵 객체를 참조해 onMapReady 함수 외부에서 제어하기

구글맵을 블루투스 기기를 사용해 간접적으로 제어하고자 했는데 구글맵이 레이아웃에선 fragment로 선언되어 있어


이를 단순히 onMapReady() 함수 안에서 GoogleMap을 다루듯이 사용하는데 조금 어려움이 있었다.



우선 아래는 맵 내비게이션을 위해 찾게 된 구글맵 레퍼런스 페이지에서 패닝(스크롤)를 위해 참고하고자 하는 내용은 아래와 같다.




CameraUpdateFactory는 animateCamera()나 moveCamera()등 카메라 관련 메소드에서 사용할 수 있는데


우선으로 시험해보고자 animateCamera()를 사용하기로 했다.



googleMap.animateCamera(CameraUpdateFactory.scrollBy(x, y));



이제 정말 문제가 됬던 건 위의 코드를 onMapReady 안에서만 googleMap 객체를 사용할 수 있고,


이를 외부에서 레이아웃을 통해 가지고 오려 하다보니 생각대로 되지 않았던 것이다.


얼마 시간이 있고나서 아주 기초적인 방법으로 구글맵 객체를 참조하는데 성공했다.



방법은 onMapReady() 함수 안에 setGoogleMap(Googlemap m)이라는 메소드를 만들어


함수 외부에 선언한 GoogleMap map 객체가 참조하도록 만드는 것이다.




이렇게 함수 안의 구글맵을 외부 구글맵 변수에 집어넣고 나면 onMapReady에서 사용하던 대로 googleMap에서 사용 가능한


메소드들을 활용할 수 있게 된다.



참조 : 


https://developers.google.com/maps/documentation/android-api/views?hl=ko