Это блестящая идея.Я работаю над аналогичным приложением, надеюсь, вы не против, если я все же реализую концепцию:).
Чтобы ответить на ваш вопрос в меру своих возможностей, нет, я не думаю,есть предопределенный способ сделать это.
Лучший способ, которым я могу придумать (после просмотра приложения для фотографий iOS4), - это использовать метод делегата mapView:regionDidChangeAnimated:
.Каждый раз, когда пользователь прокручивает / увеличивает масштаб, этот метод будет вызываться.
Внутри этого метода вы могли бы иметь некоторую быструю математическую математику, чтобы определить, достаточно ли близки ваши точки, чтобы рассмотреть возможность объединения.Как только они «объединены», вы удалите одну или обе аннотации и поместите другую аннотацию обратно в то же место, которое является ссылкой на обе (вы могли бы очень легко создать класс AnnotationCluster, который мог бы соответствовать MKAnnotation, но также содержатьNSArray аннотаций, а также содержит методы для "разрыва" или "поглощения" других аннотаций и / или экземпляров AnnotationCluster и т. Д.).
Когда я говорю "математика быстрой геометрии", я имею в виду расстояние между двумяточки относительно промежутка карты, и принимая их относительное расстояние как процент от промежутка всей карты.
Где это может быть сложно, если у вас есть сотни аннотаций, так как я не могу отключить-придумайте хороший способ реализации этого без двойного цикла.
Что вы считаете?