본문 바로가기
개발

[코틀린] 네이버 맵 api 마커 찍기 (보이는 곳만 나오게 )

by kks950115 2024. 3. 14.
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
반응형

댓글