ThinkGeo.com    |     Documentation    |     Premium Support

ClusterPointStyle

 I need some help with the ClusterPointStyle, I appear to be having an issue getting the numbers of features to make sense.  Here is my scenario


10000 features scattered across the US

ClusterPointStyle added to a InMemoryFeatureLayers CustomStyles

ZoomLevelSets are 01 to 15.


 InMemoryFeatureLayer clusterLayer = new InMemoryFeatureLayer();
                   
                    ClusterPointStyle clusterPointStyle = new ClusterPointStyle(PointSymbolType.Triangle,
                    new GeoSolidBrush(GeoColor.FromArgb(150, GeoColor.StandardColors.Green)),
                    new GeoPen(GeoColor.StandardColors.Red, 2), 15);

                    //clusterPointStyle.TextStyle = new TextStyle("FeatureCount", new GeoFont("Arial", 8), new GeoSolidBrush(GeoColor.StandardColors.Black));
                    clusterPointStyle.TextStyle = TextStyles.CreateSimpleTextStyle("FeatureCount", "Arial", 8, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 3, 0, 0);
                    clusterPointStyle.TextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
                    clusterPointStyle.TextStyle.PointPlacement = PointPlacement.LowerLeft;
                    clusterPointStyle.CellSize = 100;
                    clusterLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(clusterPointStyle);
                    clusterLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level15;
 

 


What I expect to see are triangle points scattered amongst the state lines indicating the number of features in each area.  All 10000 features have been verified to have gps values that lie within the US.  With the cell size set to 100, I see several of the cluster points, but when I add the numbers up from the labels, I am closer to 200 rather than the 10000 I expect.  As I zoom in towards any given triangle, it behaves like I expect, new triangles are formed with new values.  The problem is, the numbers don't really make any sense.  I will zoom in towards a cluster of 50 (the label on the triangle says 50) and when it breaks apart into new triangles the numbers will indicate there are several hundred features in the area.


My question is, does anyone have a working sample of clusterPointStyle where the numbers are correct for the features in a given area?  Also, what values appear to give the best results when working with cellsize, PointPlacement, DuplicateRule and other ClusterPointStyle members?


 



Below are a couple captures to maybe help show what I am describing.


US starting zoom level:


 


Zoom in 1 level:


 



Jake,


  I think you uncovered a bug in the ClusterPointStyle in the Core. I created a sample a sample myself and I can see the uncoherent behavior as you described. I created a issue in our Issue Tracker for the Development Team to work on and fix. In the meantime, I suggest you use the cutom PointStyle that you can find in the sample ClusterPointStyle of the Code Community  wiki.thinkgeo.com/wiki/Map_Suite_Wp...PointStyle


Using the same data as in the sample, I did a little test with the ClusterPointStyle and you can see that clearly there is a bug.



 


Now using the custom ClusterPointStyle from the Code Community, you can see that the Style is working fine.



 


Thank you.


 



 


Jake,


  It turns out from the explanation of the Developement Team that the problem seen with ClusterPointStyle has some deep roots in the Wpf edition due to the multi tile mode. There is no immediate fix for this problem but you can can avoid it by setting the Overlay mode type to single type. So waht you need to do is put your point layer with the ClusterPointStyle to a seperate LayerOverlay and set that LayerOverlay to TileType.SingleTile.



 


 LayerOverlay layerOverlay = new LayerOverlay();


layerOverlay.TileType = TileType.SingleTile;


 


As you can see in this screenshot, by setting the LayerOverlay tile mode to SingleTile, the ClusterPointStyle displays correctely.



 



Thanks for that clarification.  Changing to single tile for that overlay does appear to correct the numbers.  It brings up another issue though, my performance for that overlay appears to have decreased dramatically by making that switch.  Some of this I know is due to the map having to refresh all at once compared to 1 tile at a time.  I am testing in full screen mode with high resolution (1920x1200) setting.  I don’t know the number of tiles this creates, but it is probably 40+. 
  
 I have not taken exact timings, but in multi tile mode I am getting a refresh in about 6 seconds, when using single time mode it is jumping up to 30 seconds.  I will work on getting timers setup so I can say for certain the time difference, but for now I don’t see being about to use single tile mode as an option for this overlay. 


Jake,


 I am afraid that there is no other solution than using the single tile mode for resolving the ClusterPointStyle issue in the current situation. This is an issue that also manifests itself by cutting labels in various editions such as Web, SilverLight in addition to the Wpf edition. As a support guy, the most I can do is to put pressure on the Development Team so that they have a fix for the next public release next year in the spring. I am very sorry for the unconvenience.


Val.