develop_moon Posted November 26 공유하기 Posted November 26 val markers = mutableListOf<Marker>() naverMap.addOnCameraIdleListener { //Toast.makeText(this, "카메라 움직임 종료", Toast.LENGTH_SHORT).show() Log.d("mgm", "카메라 움직임 ${myInt}") // 카메라의 움직임이 종료되면 디비에서 마커 위치 정보를 가져와 설정 if(myInt == 0){ Log.d("mgm", "ececute myInt 0") locations = arrayOf( SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), ) }else{ Log.d("mgm", "ececute myInt !0") locations = arrayOf( SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0), SetLatLong(0,0) ) } removeMarkers() addMarkers() myInt += 1 } // 마커 추가하기 fun addMarkers() { executor.execute { //val markers = mutableListOf<Marker>() for (location in locations) { markers += Marker().apply { position = LatLng(location.latitude, location.longitude) } } // 마커 설정 기능 handler.post { markers.forEach { marker -> marker.map = mNaverMap } } } } // 설정된 마커 지우기 fun removeMarkers() { GlobalScope.launch(Dispatchers.Main) { markers.forEach { marker -> marker.map = null } } } (위도 경도는 일부러 0,0으로 변경했습니다.) 작업중인 기능은 '카메라 움직임 종료'가 감지되면 DB에서 카메라 중점 위도 경도 반경 000m 이내의 위도 경도를 찾아 지도에 마커를 표시하는 기능입니다. 이 기능을 위해서 기존에 설정된 마커가 있다면 마커를 전부 지우고 새로운 마커를 설정해야 하는데 마커를 지우는 과정에서 오류가 생깁니다. 위 코드에서 뭐가 문제인지, 다른 방법이 있는지 답변 부탁드립니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
develop_moon Posted November 26 Author 공유하기 Posted November 26 자답입니다. markers.clear() 링크 복사 다른 사이트에 공유하기 More sharing options...
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인