개발
[코틀린] 네이버 맵 api 마커 찍기 (보이는 곳만 나오게 )
kks950115
2024. 3. 14. 01:17
728x90
네이버맵을 사용하다보니 마커를 여러개 찍으면 렉이 걸린다.
보이는 곳만 나오게 하면 렉이 줄을 거 같은데.... 혹시나 나랑 같은 생각을 한 사람이 있을까 싶어서 검색해보니 있었다.
override fun onMapReady(p0: NaverMap) {
naverMap?.addOnCameraIdleListener { //카메라의 이동이 끝났을 때
updateMarkers(naverMap!!,markers)
}
}
fun showMarker(marker: Marker, naverMap : NaverMap) {
marker.map = naverMap
}
fun hideMarker(marker: Marker) {
marker.map = null
}
fun updateMarkers(naverMap: NaverMap, tMarkers: MutableList<Marker>){
val mapBounds = naverMap.contentBounds
val clustering = mutableListOf<LocationBasedListItem>()
//화면 안에 있으면 등장하게 하고 화면 바깥이면 숨김
for(marker in tMarkers){
val position = marker.position
if(mapBounds.contains(position)){
showMarker(marker,naverMap)
}else {
hideMarker(marker)
}
}
}
하나하나 for문으로 감별하는데 3~4000개씩 불러와도 생각보다 렉이 없어서 놀랬다. for문은 내가 생각했던거보다 상당히 빠른 듯하다.
728x90
반응형