주셔서 감사합니다 내가 취미 프로그래머이고 해결책을 찾기 그나마 좀 도와하고 어떻게 볼 distanceFromLocation
를 사용하십시오 멀리 그들은 (미터로) 있습니다.
CLLocation *placemarkLocation = [[CLLocation alloc] initWithLatitude:latitude
longitude:longitude];
if ([placemarkLocation distanceFromLocation:currentLocation] < 8046.72)
{
// add placemark to map
}
else
{
// don't
}
나는 두 추적 관찰이 :
당신은로드 프로세스가 복용하고 있다고 말했다 그리고 마일 당 1,609.34 미터가 주어진 다섯 마일 그러므로 8,046.72 미터 5 분. 나는 그것이 매우 의심스럽고 당신이 뭔가 다른 일이 있는지 궁금해합니다. 나는 단지 웃음 소리와 웃음 소리 때문에지도에 2000 개의 주석을 추가했으며 몇 분이 아닌 몇 초가 걸렸습니다. 문제가 XML 구문 분석이나 다른 것 인 경우지도 생성을 최적화 할 필요가 없기 때문에 지연 소스를 식별하기 위해 진단을 수행하는 것이 좋습니다. 실제로 지연의 원인을 확인하기위한 진단 작업을 수행하십시오.
예를 들어, 인터넷을 통해 수십 또는 수백 메가 바이트로 측정되는 거대한 KML 파일을 다운로드하는 경우, MKMapView
의 최적화는 전반적인 성능에 거의 영향을 미치지 않습니다. 이것은 단지 임의의 예이지만 문제의 원인을 확실히 이해하고 있는지 확인하십시오.
iPhone5의 MKMapView
에 2000 개의 주석을 추가하는 데 몇 초가 걸렸지 만, 분명히 훌륭한 UX는 아닙니다 (몇 초 지연의 관점 에서뿐만 아니라 2,000 개의 주석을 가질 수 없다는 생각은 분명히 없습니다. iPhone 화면에서 시각적으로 차별화). 5 마일 이내에있는 위치 표시를 잡으라고 제안하고 대안을 선택할 수있는 옵션을 사용자에게 제공했습니다. 나는, 당신은 MKMapView
에 대한 region
또는 visibleMapRect
보는 것이 좋을 것이 "5 마일 모두"논리를 코딩보다
오히려 및 내 가을 주석을 보여 나는, 나는 다른 방법을 건의 할 것입니다 수 해당 지역 또는 MKMapRect
. 또는이 지역에 속하는 특수 효과를 100 개만 표시하면됩니다. 그리고이를 이것을 일상적으로 regionDidChangeAnimated
루틴에 넣었다면, 새로운 주석이 필요할 것입니다.
출처
2013-02-02 17:16:18
Rob
대단히 감사드립니다. – nerkom