안드로이드 구글맵 폴리라인 제거 방법

조회수 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가 왜 안 지워지는데 궁금하고 어떻게 고쳐야하는지 궁금합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)