Upload
studio-stfalconcom
View
78
Download
1
Embed Size (px)
Citation preview
Тисячі об'єктів на карті мобільного додатку.
Кластеризація в iOS.
Навіщо воно мені здалось??
Задача
• Анімована кластеризація об'єктів на карті додатку
Задача
• Анімована кластеризація об'єктів на карті додатку
• Реалізація кластеризації з підтримкою GooglMapsSDK.
Існуючі рішення в iOS
• Superpin - швидкий і платний, без анімації
• Kingpin - безкоштовний, з підтримкою анімації, але повільний і трохи глючний
• DTClusterMaker - також платний
Основна проблема: відсутність підтримки GoogleMapsSDK
Методи кластеризації
• Метод k-середніх (групування по мінімальному сумарному квадратичному відхиленню від центру кластеру)
• Групування по сітці (розбиття видимої області на регіони, формування кластерів з їх вмісту)
Метод k-середніх
Метод k-середніх
• На практиці повільний
• Складність виконання анімації, маркерів
Кластериація за допомогою групування
об'єктів по сітці
• Формування нових кластерів при переміщенні карти.
• Анімація кластерів
• Видалення старих кластерів
Визначення розміру видимої області
Пошук лівого нижнього кута
Побудова кластерів
Дуже повільно...
Трошки оптимізовуєм
Знову створюєм кластери
Вже швидше!
А якщо ще більше об'єктів?!
Квадратичне дерево
Квадратичне дерево
Квадратичне дерево
• Набагато швидший процес формування кластерів при навігації
• Потрібно більше часу на початку для побудови дерева
Анімація маркерів
Новий кластер є частиною старого
кластера
Старий кластер є частиною нового
кластера
Дякую за увагу!
Запитання?
• https://github.com/utiko/ClusterTest