ThinkGeo.com    |     Documentation    |     Premium Support

CustomStyle (area and textstyle)

 Hi, 



I have a problem with the custom style


I have 3 polygons which overlap perfectly on 3 differents layers.


Polygon 1 is on Layer 1 with Areatyle = red border and TextStyle = red 


Polygon 2 is on Layer 2 with Areatyle = blue border and TextStyle = blue


Polygon 3 is on Layer 3 with Areatyle = black border and TextStyle = black 


I apply a customstyle on areastyle and a customstyle on textstyles


For example : 


Polygon 1 


 zleIlot.ZoomLevel08.CustomStyles.Add(AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.SimpleColors.Red, 2));


ftConfig.ZoomLevelParam.ZoomLevel08.CustomStyles.Add(TextStyles.CreateSimpleTextStyle(fo, "Arial", 10, DrawingFontStyles.Regular, OutilsOvLyr.StringToGeocolor(ftConfig.ColorLyr)));        


ftConfig.ZoomLevelParam.ZoomLevel08.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;          


Polygon3 : 


 _zLevOccupSol.ZoomLevel08.CustomStyles.Add(vStyleArea);


 _zLevOccupSol.ZoomLevel08.CustomStyles.Add(TextStyles.CreateSimpleTextStyle("FetchCol", "Arial", 10, DrawingFontStyles.Regular, GeoColor.StandardColors.Black));


_zLevOccupSol.ZoomLevel08.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


On the screen, if the 3 layers are visible, I should see the customStyle of the polygon3 (because is on the top) but I see the areastyle of the polygon3 and the textstyle of the polygon1.


And I don't understand why ? 


Thanks for your help.


Regards.


Steph.




 Hi Steph,



 Thanks for your post, and we have recreated the scenario, and reason is the 3rd layer’s text overlaps with the first layer’s text so it will not be drawn, there are two solutions: 


1.        TextStyle fatherTextStyle = new TextStyle("father", new GeoFont("arial", 10, DrawingFontStyles.Regular), new GeoSolidBrush(GeoColor.SimpleColors.Black));


            fatherTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping;


            _zLevOccupSol.ZoomLevel08.ZoomLevel08.CustomStyles.Add(fatherTextStyle);


This solution will have a side-effect that both the layer1’s text and layer3’s text will be drawn even they overlaps.


 2. use a single layer to contain the text and make sure it is the first added layer in the overlay, attached is our sample, please try it!


 


Hope it helps 


Johnny


 



Hi Johnny,  
  
 Thanks for your help. 
 Where can i find the attached sample  ? 
  
 Thanks. 
  
 Regards. 
 Steph.

 Hi Steph,


Sorry that I missed adding the attachment, please check it out now.


Thanks,


Johnny



post_11115sample.txt (4.25 KB)