MKMapView에서 현재 보이지 않는 MKAnnotation을 제거하기 위해 메모리 관리, 배터리 수명 및 프로세서 사용면에서 더 좋습니까?MKAnnotations를 제거하는 것이 더 나은가요?
저는 주어진 시간에 현재 영역에서 약 20 개의 가시적 인 주석 (대략 1000 개 정도)에 대해 이야기하고 있습니다. MapKit이 핀을 숨겨서 자신의 업무를 수행하도록해야합니까? 아니면 보이는 영역에 따라 주석을 추가/제거해야합니까?
MKMapView에서 현재 보이지 않는 MKAnnotation을 제거하기 위해 메모리 관리, 배터리 수명 및 프로세서 사용면에서 더 좋습니까?MKAnnotations를 제거하는 것이 더 나은가요?
저는 주어진 시간에 현재 영역에서 약 20 개의 가시적 인 주석 (대략 1000 개 정도)에 대해 이야기하고 있습니다. MapKit이 핀을 숨겨서 자신의 업무를 수행하도록해야합니까? 아니면 보이는 영역에 따라 주석을 추가/제거해야합니까?
화면에 표시되지 않는 주석은 큰 메모리 사용을 유발하지 않습니다. MKAnnotation
은 매우 가볍도록 설계되었으므로 작게 유지해야합니다. 메모리 돼지는 관련 뷰 (MKAnnotationView
)입니다. 몇 백 개가 보이면 이전 장치에서 충돌이 발생할 수있는 속도 저하 및 대용량 메모리 사용이 발생합니다. 1000은 모든 장치의 속도를 저하 시키지만 충돌을 일으키지는 않습니다.
요약하면 오프 스크린 주석은 중요하지 않습니다. 문제는 화면이 너무 많을 때 발생합니다. 이를 위해 성능 향상을 위해 특수 효과를 제거해야합니다. 주석을 제거하고 대체하는 방법은 훨씬 더 어려운 질문입니다.
나는 동시에 100 개 이상의 주석을 표시하지 않을 것입니다. MKMapView에서 처리하도록 허용하면 사용자가 전 세계를 축소하여 mapView에서 1000 개의 주석을 모두 표시하지 못하도록하는 방법은 무엇입니까?
그게 내가 실제로 노력하고있는 문제입니다. 네이티브 포토 응용 프로그램과 같이 축소하여 주석을 그룹화하려고합니다. 사실, 이미 예쁜 애니메이션으로 그룹화하고 그룹 해제 할 수 있지만 무엇을해야할지 생각하고 있습니다. 오프 스크린 그룹화 된 주석으로 처리 ... – WASD42
@ WASD42 : 흥미 롭습니다. 그냥 궁금 해서요 : 어떤 그룹화 알고리즘을 사용하고 있습니까? –
감사합니다. 주석 제거 및 바꾸기에 대한 설명 - 클러스터링 절차에 대한 작업을하고 있는데, 그 이유는 내가이 질문을했기 때문입니다. 그룹화 된 오프 스크린 마커는 어떻게해야합니까? 이제는 제거하지 않고 그룹을 해제하는 것이 좋을 것이라고 생각합니다. – WASD42
그룹화가 너무 오래 걸리지 않는다면 모든 그룹을 그룹화하기 만하면됩니다 (오프 스크린 파티도 포함). 그렇게하면 화면 모서리에서 잘린 그룹을 다루는 방법을 처리 할 필요가 없습니다. 또한지도를 이동할 때 더 많은 그룹을 만들 필요가 없음을 의미합니다. –