안드로이드 구글맵 폴리라인 제거 방법
조회수 906회
제가 만들고있는게 거의 막바지인데 마지막 하나를 못하고있습니다. 버튼을 누르면 제 위치를 받아 마커와 폴리라인을 그려주는겁니다.
버튼을 처음 눌렀을 때 위치를 받아 마커와 폴리라인을 그려주고, 한 번 더 누르면 일시정지가 됩니다. 그리고 다시 버튼을 누르면 전에 그렸던 마커와 폴리라인이 지워지고 새로 위치를 받아 마커와 폴리라인을 그려줍니다.
문제는 세번째로 버튼을 눌렀을 때 마커는 지워지는데 폴리라인이 안 지워집니다.
private ArrayList<LatLng> arrayPoints;
private PolylineOptions polylineOptions = new PolylineOptions();
밑에는 onCreate 안의 버튼을 눌렀을 때의 동작입니다. arrayPoints.clear()를 해도 잠시 지워졌다가 새 위치를 받아 마커가 찍히면 지워졌던 폴리라인이 다시 살아납니다.
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
walkState++;
if(walkState % 2 == 0) {
mMap.clear();
arrayPoints.clear(); // 이 부분은 안 됩니다.
startBtn.setText("걸음 멈춤");
} else {
startBtn.setText("걸음 시작");
}
}
});
여기는 마커와 폴리라인을 그려주는 함수입니다.
public void setCurrentLocation(Location location, String markerTitle, String markerSnippet) {
LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude());
markerOptions.position(currentLatLng);
markerOptions.title(markerTitle);
markerOptions.snippet(markerSnippet);
markerOptions.draggable(true);
currentMarker = mMap.addMarker(markerOptions);
polylineOptions.color(Color.RED);
polylineOptions.width(15);
arrayPoints.add(currentLatLng);
polylineOptions.addAll(arrayPoints);
mMap.addPolyline(polylineOptions);
CameraUpdate cameraUpdatep = CameraUpdateFactory.newLatLng(currentLatLng);
mMap.moveCamera(cameraUpdatep);
}
polylineOptions가 왜 안 지워지는데 궁금하고 어떻게 고쳐야하는지 궁금합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력