안드로이드 버튼 클릭 시 gps를 받아와 마커 찍기
조회수 471회
제가 지금 버튼을 클릭했을 시 휴대폰 위치를 받아 구글맵에 제가 이동한 이동경로를 보여주는 앱을 구현중입니다. 다른 블로그를 참고하여 버튼 클릭 시 구글맵에 마커와 폴리라인을 긋는건 구현을 했습니다.
그런데 이걸 멈추려니 어떻게 해야할지 모르겠네요... 아래는 버튼 클릭 시의 구현입니다. 버튼은 한 개이고 처음엔 '걸음 시작'이라 돼있는 버튼을 누르면 '걸음 정지'로 바뀌고 이 버튼 하나로 두 기능을 모두 넣으려 합니다.
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
walkState++;
if(walkState % 2 == 0) {
Toast.makeText(getApplicationContext(), "걸음을 시작합니다.", Toast.LENGTH_SHORT).show();
button.setText("걸음 정지");
LocationCallback locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
List<Location> locationList = locationResult.getLocations();
if (locationList.size() > 0) {
location = locationList.get(locationList.size() - 1);
currentPosition = new LatLng(location.getLatitude(), location.getLongitude());
String markerTitle = getCurrentAddress(currentPosition);
String markerSnippet = "위도:" + String.valueOf(location.getLatitude()) + " 경도:" + String.valueOf(location.getLongitude());
setCurrentLocation(location, markerTitle, markerSnippet);
mCurrentLocatiion = location;
}
}
};
mFusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper());
} else {
Toast.makeText(getApplicationContext(), "걸음을 멈춥니다.", Toast.LENGTH_SHORT).show();
button.setText("걸음 시작");
}
}
});
마커와 폴리라인을 찍을 때 LocationCallback을 썼는데 멈추려면 어떻게 해야할까요? 심지어 onPause()도 안 먹히네요;;
++ 폴리라인을 지도에서 지우는 방법은 무엇인가요? PolylineOptions를 사용했는데 clear, remove도 없고 setMap(null)도 없네요. PolylineOptions를 ArrayList에 담아서 사용하는데 ArrayList를 clear()해도 안 지워져요 ㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력