public virtual IList <MapCluster> GetMapClusters(GetMapClustersParam param)
        {
            ZoomLevel = param.ZoomLevel;
            //          var storesInBounds = param.Locations.Where(store => InBounds(param.MapBounds, store));
            var context = new ClusteringContext();

            foreach (var store in param.Locations)
            {
                AddToClosestCluster(context, store);
            }

            return(context.Clusters);
        }
Example #2
0
        protected virtual List <StoreClusterViewModel> GetMarkers(GetStoreLocatorViewModelParam param,
                                                                  List <Overture.ServiceModel.Customers.Stores.Store> stores, Dictionary <string, int> storeIndexes)
        {
            var getClusterParams = new GetMapClustersParam
            {
                ZoomLevel   = param.ZoomLevel,
                SearchPoint = param.SearchPoint,
                Locations   = stores.Select(s => new StoreGeoCoordinate(s)).Cast <IGeoCoordinate>().ToList()
            };
            var clusters = MapClustererProvider.GetMapClusters(getClusterParams);

            return(clusters.Select(c =>
                                   new StoreClusterViewModel
            {
                Center = c.Center,
                Tile = c.Tile,
                ItemsCount = c.ItemsCount,
                StoreNumber = c.StoreNumber,
                SearchIndex = c.ItemsCount == 1 ? storeIndexes[c.StoreNumber] : 0
            }).ToList());
        }