FakiNyan написав:а що саме вам не зрозуміло з пояснення?
Мабуть все не зрозуміло. Спробую розібрати по порядку, як буде кому ласка, направте/поправте/підкажіть.
Функція вертає колекцію об'єктів (MapPoint) доступних по індексу. Функція на вхід що приймає? Не зрозуміло мені. На "YourFilterObj" помилка "Error CS0246 The type or namespace name 'YourFilterObj' could not be found"
public IList<MapPoint> GetClusters(YourFilterObj filter)
Це для чого? Зрозуміло, що "somecachekey" це тут щось своє дописати, але призначення не розумію.
var clusterPointsCacheKey = "somecachekey";
Викликаємо функцію GetClusterPointCollection яка повертає колекцію точок (кластерів?). На вхід "somecachekey" це щось типу тєга колекції?
var points = GetClusterPointCollection(clusterPointsCacheKey);
Оголошуємо невизначеного типу змінну mapService = новий об'єкт ClusterService, якому згодовано колекцію точок "points".
var mapService = new ClusterService(points);
Змінній input передаємо параметри кластеризованого маркеру? Я так розумію координати прямокутника де об'єднаються всі маркери, які входять до цього прямокутника, в один маркер. Плюс рівень зуму, плюс тип маркеру. Ці параметри беруться з структури filter, яка дається на вхід функції. Як мені той filter сформувати?
var input = new GetMarkersParams()
{
NorthEastLatitude = filter.NorthEastLatitude,
NorthEastLongitude = filter.NorthEastLongitude,
SouthWestLatitude = filter.SouthWestLatitude,
SouthWestLongitude = filter.SouthWestLongitude,
ZoomLevel = filter.ZoomLevel,
PointType = clusterPointsCacheKey
};
створюємо маркер згідно параметрів в input.
var markers = mapService.GetClusterMarkers(input);
Повертаємо колекцію кластеризованих маркерів.
Функція яка повертає колекцію точок на вхід щось типу тегу групи точок, чи назва групи точок?
private PointCollection GetClusterPointCollection(string clusterPointsCacheKey)
Оголошуємо нову колекцію точок
var points = new PointCollection();
Оголошуємо типу бази з точок де GetPoints() мабуть якась моя функція з видобутку тих самих точок в форматі mappoint?
var dbPoints = GetPoints();
Це для чого?
var cacheDuration = TimeSpan.FromHours(6);
Якась установка параметрів точок?
points.Set(mapPoints, cacheDuration, clusterPointsCacheKey);
Повертаємо колекцію точок
Ну і відповідно не розумію як мені цими двома функціями користуватись. Що дати на вхід, а як отримаю результат як ним скористатись?
Не вистачає живого прикладу, вже б напевно зміг би второпати.
p.s. Вже думав зробити свій обробник кластерізації на основі адреси об'єкта. Типу зум 7 - групуємо маркери по області, збільшуємо зум - вже за містом групуються, а далі вже без кластерізації. Але тоді постане питання в строгій типизації вводу адреси об'єктів. Бо область можуть вводити як Дніпропетровська, Днепропетровская, Dnipropetrovskaya, тощо. Чи там місто Дніпро, Дніпропетровськ, Dnipro, Січеслав, тощо. З Кропівницьким та ж сама біда. Або десь отримати типизований список областей і міст, і вулиць можна, що б ними заповнити комбобокси і вже звідти додавати адреси до бази. Але це не "правильний" підхід на мою думку. Треба до координат прив'язуватись все ж таки.