Если ваша карта полностью уменьшена, то она не собирается просто удалять булавки без всякой причины. Булавки снимаются только тогда, когда они не видны.
Из опыта я могу сказать, что 1000 контактов карты намного превышают верхний предел того, что считается стабильным практически для любого устройства, тем более для старых устройств.
Старое устройство, такое как iPhone 3G, может даже обойтись в 100-150, прежде чем вы начнете видеть chop (конечно, это зависит от того, что еще делает ваше приложение).
Я пишу приложение, которое широко использует MKMapView, и я вынужден установить логику для регулирования количества выводов, видимых на карте, в зависимости от типа устройства.
Есть два возможных решения
1) Ограничьте границы масштабирования карты, чтобы пользователь не мог уменьшить масштаб настолько, чтобы он видел все булавки одновременно (на самом деле я раньше этого не делал, поэтому не знаю, возможно ли это) , но это было бы идеей).
2) Создайте предложенные фильтры, ограничивающие показанные штыри.