public List <PhotoMapItem> GetClasteredItems(MapControl map, List <DmFile> files, double distanceRadius)
        {
            SimpleGraph graph = new SimpleGraph(EarthDistanceCalculator.Default);

            files.ForEach((file) => {
                if (file.HasGeoLocation)
                {
                    graph.Vertexes.Add(CreateVertex(map, file));
                }
            });
            graph.CalculateEdges();
            GraphSegmentator segmentator = new GraphSegmentator(graph);
            ArrayList        segments    = segmentator.DoSegmentation(distanceRadius);


            List <PhotoMapItem> items = new List <PhotoMapItem>();

            foreach (SimpleSegment segment in segments)
            {
                PhotoMapItem item = new PhotoMapItem();
                double       x = 0.0, y = 0.0;
                foreach (SimpleVertex v in segment.Vertexes)
                {
                    item.Files.Add((DmFile)v.Tag);
                    x += v.X;
                    y += v.Y;
                }
                x /= segment.Vertexes.Count;
                y /= segment.Vertexes.Count;

                item.Location = new GeoPoint(x, y);
                item.Image    = ThumbHelper.GetIconImage(((DmFile)((SimpleVertex)segment.Vertexes[0]).Tag));
                items.Add(item);
            }
            return(items);
        }