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
반응형
'개발' 카테고리의 다른 글
[코틀린] 네이버 맵 API , TedNaverClustering 적용 (1) | 2024.03.18 |
---|---|
[코틀린] 뷰페이저2 안에 맵뷰에서 좌우 스와이프가 안먹힐 때 (커스텀 맵뷰) (1) | 2024.03.14 |
[코틀린] navermap 지도 영역 제한 ( 국내 영역으로 제한하기) (0) | 2024.03.11 |
[git] 특정 파일 잘못 올린 상태로 커밋했을 때, git에서 특정 파일 제거하는 방법 (1) | 2024.02.29 |
[안드로이드/코틀린] 파이어베이스 리얼타임 데이터베이스를 연결해보자(firebase realtime database) (1) | 2024.02.27 |
댓글