사용자가 원점과 목적지를 두 개의 서로 다른 표시로 선택할 수있는지도 시스템을 구현하고 싶습니다.지도 표시자를 제거하는 방법
사용자가지도를 오래 클릭하면 버튼을 선택하여이 위치를 시작 또는 끝점으로 사용할 수 있습니다. 사용자가 (시작/끝으로 새 위치를 선택) 같은 과정을 반복 할 때
case (R.id.setStart):
markerStart = mMap.addMarker(new MarkerOptions()
.position(this.startPoint)
.title("Start")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
outputName = rGC.getStringFromCoordinates(this.startPoint.latitude, this.startPoint.longitude);
autocompleterStart.setText(outputName);
break;
case (R.id.setEnd):
markerEnd = mMap.addMarker(new MarkerOptions()
.position(this.endPoint)
.title("End")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
그러나, 나는 이전 마커를 제거 할 수 있어야합니다. 따라서 동일한 시작 버튼을 선택하면 이전 시작 마커가 제거되고 새 마커가 만들어집니다.
지도에 특정 마커가 있는지 확인하는 방법이 있습니까? 나는 marker.remove();
을 추가하려고했지만 nullpointerexception을 제공합니다.
case (R.id.setEnd):
markerEnd.remove();
markerEnd = mMap.addMarker(new MarkerOptions()
.position(this.endPoint)
.title("End")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
아이디어가 있으십니까? 고마워요! 당신이 marker`가 null`때문입니다 널 포인트 예외를 얻는 경우
를 내가 내 응용 프로그램과 잘 작동에 구현 한 방법을 ... 사용할 수 있습니다. 마커가 설정되지 않은 상태에서 처음으로 명령을 건너 뛰도록 앞에 'if (marker! = null)'를 추가하십시오. – Robadob
@ Robadob 메소드 시작시 두 마커를 모두 초기화해야하므로 작동하지 않습니다. 그래서 아무것도 제거하지 않습니다. – linus
아마도 마커를 수업 내 어딘가에 저장해야할까요? 사용자가 마커를 다시 잡을 수있는 유일한 방법은 사용자가 마커를 클릭하는 것입니다. – Robadob