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 이내의 위도 경도를 찾아 지도에 마커를 표시하는 기능입니다.
이 기능을 위해서 기존에 설정된 마커가 있다면 마커를 전부 지우고 새로운 마커를 설정해야 하는데 마커를 지우는 과정에서 오류가 생깁니다.
위 코드에서 뭐가 문제인지, 다른 방법이 있는지 답변 부탁드립니다.