iOS의지도에 주석을 추가하는 것과 관련하여 성능 문제가 있습니다 (표준지도 키트 방법을 사용하므로 Apple지도 사용). (void)addAnnotations:(NSArray *)annotations
메서드를 사용하여 대량의 주석 (10000+)을 대량으로 추가하려고합니다. 주석 객체는 특별한 아무것도 - 다음과 같이 정의에만 생성자와 MKAnnotation
를 구현하는 아주 기본적인 클래스 :지도에 주석을 추가하는 것이 너무 느림 - iOS
- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d {
if(self = [super init]) {
title = ttl;
coordinate = c2d;
}
return self;
}
, 단순히 기본적인지도에 주석을 추가하는 기본 응용 프로그램을 만들었습니다 로드시보기 및 iPad에서 약 6 ~ 7 초 소요됩니다. 2. 매우 만족스러운 성능. 그러나, 내 자신의 응용 프로그램에서 동일한 기본지도보기를 포함 할 때 상황이 복잡해집니다. 똑같은 논리이지만, 앱에서 할 때 모든 주석을로드하는 데 약 50 초가 걸립니다.
내 앱에는 여러보기가 있습니다. 문제를 정확히 파악하기 위해지도보기를 최저 수준부터 시작하여 최상위 수준에 도달 할 때까지 시작했습니다. 각 단계에서 성능 향상에 도움이되는지 확인하기 위해 프로파일 링을했는데 결과가 표시되지 않습니다. 아직 약 50 초입니다. 바로 지금, 내 앱은 기본적으로 독립형 앱과 이상적으로 동일한 상단 및 유일한 레벨지도보기에 특수 효과를로드하고 추가하지만 어떤 이유로 든 주석 렌더링에는 약 50 초가 걸립니다. 내가 가진 유일한 합리적인 설명은 필자가 가지고있는 앱 설정 중 일부가지도 성능을 방해한다는 것입니다. 나는 아무 소용이없는 해결책을 내놓기 위해 독서를 다뤘다.
누구에게 무슨 문제가 있을지에 대한 아이디어가 있습니까? 감사!
위대한 질문과 깊이/세부 사항. 불행히도 나는 그 해답을 알지 못한다. 그러나 StackOverflow에 대한 첫 번째 질문에서 나는 당신에게 박수를 보냅니다! – MCKapur
MapKit을 많이 사용하지는 않았지만 다음과 같은 두 가지 옵션이 있습니다. 1) bg 스레드에서 수행하십시오 (작동하는지 확실하지 않음). 2) 정의 된 확대/축소에서 의미가있는 주석 만로드하십시오. 그래서 요가 매우 축소되면 20 개만 보여줄 수 있습니다. 한 번 확대하면 가능한 주석 수가 10k 미만이 될 것이므로 현재 뷰포트와 교차하는 다음 20 개의 중요도를 표시하십시오. – LocoMike