MKMapView
имеет метод dequeueReusableAnnotationViewWithIdentifier:
( документация ), который, я полагаю, вы должны использовать. Похоже, он работает аналогично UITableView
dequeueReusableCellWithIdentifier:
методу.
Другая вещь может состоять в том, чтобы сгруппировать контакты в один контакт. При увеличении масштаба вы можете расширить эти группы.
обновление : обнаружена классная библиотека с открытым исходным кодом, которая может быть полезна для работы с множеством точек аннотации: ADClusterMapView