На самом деле полагаться на расстояние между текущим местоположением и точками интереса - неправильный подход: оценка расстояний занимает время, вам лучше просто полагаться на регион, отображаемый на вашей карте (свойство region
), и проверить, какой из Ваши POI содержатся в этом регионе.
При увеличении / уменьшении регион изменяется, поэтому вам, возможно, придется повторить то же самое.
Смотрите мой ответ здесь:
MKMapView загружает все представления аннотаций одновременно (включая те, которые находятся вне текущего прямоугольника)
Этот парень пытается использовать кэширование аннотаций, и мой ответ может помочь вам в вашем случае.
Чтобы проверить, является ли ваша POI отображаемым регионом, я разместил фрагмент кода, который может помочь здесь:
Разработка iPhone - это Pin-аннотация в видимой области карты