ThinkGeo.com    |     Documentation    |     Premium Support

CustomColumn value not displaying

Hello all!



Here’s the deal. I have a custom column for my shapefiles that might contain the region name and / or the value for that region (the user can assign numeric values to regions).



So, the problem is that when I select to display both region name and values, most will display, some won’t cause of the zoom I believe. But if I choose to display only the value for that region and NOT the name, then some regions won’t show the value until you zoom in. I’ve verified that the value is there (and you can actually see it when you zoom in).



Any thoughts on what’s going on? 



Here’s the code that creates the style for that column, it’s pretty simple:


public static Style GetRegionNameStyle()
        {
            TextStyle aux = TextStyles.CreateSimpleTextStyle(“ermtregionname”“Arial”, 9, DrawingFontStyles.Regular,
                GeoColor.StandardColors.Black,
                0, -12);
            //aux.BestPlacement = true;
            aux.YOffsetInPixel = 3;
            return aux;
        }



And this is how that style is used by the shapefiles:




shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(_regionNameStyle);
                    shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;



I’ve attached 3 images for you to look at. I think the image names are self-explanatory. You can use MENDOZA in the left middle of the map to see what’s going on.











Any help would be appreciated. 



Thanks!



Juan.

Hi Juan, 
  
 It looks you hadn’t set any property for the text style. 
  
 I am not sure whether it’s related with CustomColumn, could you please do a quickly test that remove custom column and set a default text style, then see whether it’s render the same. 
  
 If that render the same, I think you need to set some properties for text style like:  
 OverlappingRule  
 DuplicateRule 
 BestPlacement 
 GridSize  
 … 
  
 Regards, 
  
 Don

Hi Don! 



Thanks for the reply. I tried playing with those settings but I’m unable to accomplish this. I actually created a Style for the CustomColum that displays every time (the other one was conditional to some controls in the screen). And the behavior is just the same. The values will display in some zoom levels, won’t display in other, but it does not follow a logic behavior. And the problem is that the values are in a CUSTOMCOLUMN, there’s no way for me to avoid that, so I need it working with CustomColumns. This is the last issue I have that’s preventing me to deliver the product… so please please help!


public static Style GetRegionvalueStyle()
        {
            TextStyle aux = TextStyles.CreateSimpleTextStyle(“factorvalue”“Arial”, 9, DrawingFontStyles.Bold,
                GeoColor.StandardColors.Black, 0, -12);
 
            /*
             * If that render the same, I think you need to set some properties for text style like: 
OverlappingRule 
DuplicateRule 
BestPlacement 
GridSize 
             */
            //aux.GridSize = 1;
            aux.BestPlacement = true;
            aux.OverlappingRule = LabelOverlappingRule.AllowOverlapping;
 
            //aux.YOffsetInPixel = 3;
            return aux;
        }

Then


if (!(shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Contains(_regionValueStyle)))
                {
                    shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(_regionValueStyle);
                    shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
                }

And when the map opens, you’ll see it as the attached image in my first post, with MENDOZA having plenty of room for a label, but NOT displaying the value it should. When you zoom you see it.



Thanks!

Hi Juan, 
  
 Please try following code to create the TextStyle: 
  
 TextStyles.CreateSimpleTextStyle("[ermtregionname][factorvalue]", "Arial", 9, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, 0, -12);  
  
 Thanks, 
 Peter

Peter and Don,  
  
 I found that Don had actually given me the answer. My problem was DuplicateRule. I set it to LabelDuplicateRule.UnlimitedDuplicateLabels and now the behavior is the one I need. 
  
 Thanks again for all the help, as always.

Hi Juan, 
  
 Thanks for let us know that. 
  
 Any question please let us know. 
  
 Regards, 
  
 Don