Считаете ли вы, что несколько контактов отображаются друг на друга, когда они находятся в одной и той же координате? Или возможно, что Apple отбирает дополнительные контакты в одной и той же координате?
В любом случае, я бы предложил изменить координаты так, чтобы их можно было видеть отдельно. Что вы можете сделать, так это найти все контакты, которые очень близки друг к другу, используя метод distanceFromLocation: CLLocation. Как только вы обнаружите, что есть несколько контактов, которые являются небольшим расстоянием (скажем < 0,01) друг от друга, вы можете изменить их координаты, прежде чем добавлять их на карту. Вы можете заставить их сформировать небольшой круг вокруг фактической точной координат, причем угол вокруг круга определяется количеством в этом кластере (например, для 4 контактов, поместите их на 0, 90, 180, 270 градусов). Или вы можете изменить широту только на очень небольшую величину, чтобы штыри отображались друг на друга в вертикальной линии.
Вы также можете сделать это разделение, когда пользователь нажимает на отдельный контакт. то есть для этого вывода, проверьте, имеются ли какие-либо другие контакты, которые очень близки. Если есть, удалите этот штырь (или, возможно, удалите все эти контакты), вычислите новые позиции для всех контактов в круге или вертикальной линии, затем снова добавьте булавки на карту (и при необходимости откройте любой вид выноски).
После того, как контакты были разделены таким образом, пользователю будет легко нажать на отдельные контакты.
Я не совсем уверен, как Google Maps/Google Earth справится с этой проблемой - не могли бы вы описать ее или предоставить скриншот? Или укажите некоторые условия поиска, которые могут привести к его возникновению. Но, надеюсь, вышеизложенные идеи дадут вам что-то попробовать.
Ваша идея хорошая, и ее можно применить к моей проблеме, особенно к кругу. Благодаря! – sebastien