ThinkGeo.com    |     Documentation    |     Premium Support

WPF Marker Cluster

 I've read through the forums and I have been able to implement a cluster point style and have created custom marker styles.  However, I've been stumped with how to create a cluster marker style.  I would like to cluster features into one marker that contains all the features within a certain tolerance.  Since a marker is just a WPF control, I have envisioned handling the double click event to expand that marker and display all the features at that point.  I've been stymied by the fact that the markerstyle class does not have any access to the geocanvas.  Without this access I don't see how I can get the scale to build a tile matrix.  The tile matrix seems to be the preferred method for determining which features will form a cluster.


Am I going to down the wrong path with using a tile matrix?  Is there a way to access the GeoCanvas from the markerstyle drawcore?  Is it even possible to form a markercluster in WPF or is that just limited to the web?



Thomas, 
  
 You can try to use InMemoryMarkerOverlay which allow you set cluster style similar with InMemoryFeatureLayer. 
  
 InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay(); 
             markerOverlay.ZoomLevelSet.ZoomLevel01.CustomMarkerStyle = clusterMarkerStyle; 
             markerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; 
             wpfMap1.Overlays.Add("MarkerOverlay", markerOverlay); 
  
 Let me know if you have more questions. 
  
 Thanks, 
 James 


 James,


     Sorry for bringing up an old thread, but I have tried to use the ClusterPointStyle available in WPFDesktopEdition and assign it to the InMemoryMarkerOverlay.  I am not seeing how to accomplish this like you do in your sample.  Maybe I am creating the clusterMarkerStyle incorrectly, but the types don't appear to be compatible as I get the following message.



Cannot implicitly convert type 'ThinkGeo.MapSuite.Core.ClusterPointStyle' to 'ThinkGeo.MapSuite.WpfDesktopEdition.MarkerStyle


How do I properly assign a cluster style to a marker overlay?


 



Hello Jake, 
  
 Thanks for your post, ClusterPointStyle is a PointStyle, not a MarkerStyle, so that you can’t assign it to markerOverlay.ZoomLevelSet.ZoomLevel01.CustomMarkerStyle. We don’t have ClusterMarkerStyle in WPF edition, I will ask James for details. 
  
 Sorry for the inconvenience. 
  
 Regards, 
  
 Gary

Hi all, 
  
 I am also very interested in the answer to this question. Any method to easily cluster Markers would save me a lot of time. 
  
 Thanks. 
  
 Ben

Hello Jake & Ben, 
  
 I have confirm with James, he didn’t make his meaning clearly, the code just guide user to create own ClusterMarkerStyle(inherit from MarkerStyle) according to ClusterPointStyle, you can see it isn’t use new ClusterMarkerStyle(), instead use lower case clusterMarkerStyle which is created by user. 
  
 If you have any more questions about this, please let us know. 
  
 Regards, 
  
 Gary