Несколько аннотаций (IOS) Самый простой способ - PullRequest
1 голос
/ 12 мая 2011

Я использую аннотации в IOS для отображения лондонских станций метро, ​​но я смотрю на цифры, а их около 280. Какой самый простой способ сделать это? Индивидуально или есть другой вариант?

Приветствую за все советы

David

1 Ответ

6 голосов
/ 12 мая 2011

Производительность хорошая с 280 аннотациями, внешний вид - нет. Вы должны сгруппировать их в кластеры, когда пользователь уменьшит масштаб.

Один из способов сделать это:

  • Решите, сколько аннотаций кластера вы хотите показать.
  • Разделите экран на x * y плитки, чтобы примерно x*y =~ numClusters и x/y=480/320=1.5
  • Добавить кластерную аннотацию на плитку (это обычный кластер с массивом, содержащим 0 или более аннотаций).
  • Запустить алгоритм k-средних :
    • Переберите все аннотации и добавьте каждую в ближайший кластер.
    • Рассчитайте новый центр для каждого кластера, который будет в среднем от центров всех его членов.
    • Очистить каждый кластер.
    • Повторяйте, пока кластер больше не будет двигаться.
    • Удалить пустые кластеры, если таковые имеются.

В итоге вы получите numClusters кластеров, расположенных в соответствии с плотностью аннотации.

Вы также можете оставить несколько обычных аннотаций сами по себе, если они находятся за пределами кластеров. Зависит от того, как вы хотите, чтобы это выглядело.

...