ThinkGeo.com    |     Documentation    |     Premium Support

Splined Text

Splined Text labels are not showing as splined text even though the SplineType within the TextStyle is being set.


I see there is a property named AllowSplining, but it is protected.


Any help with this is appreciated.


Thanks,


Dennis


 



Dennis,


  Let me remind you first that Splining applies only to line based features. So this is going to work great for streets but this is irrelevant for labeling polygons or points. Below I have a simple example of how I label some streets with the code and the visual results. The code is pretty simple and I hope this is going to get you started for your case.




  wpfMap1.MapUnit = GeographyUnit.Feet;

    ShapeFileFeatureLayer streetLayer = new ShapeFileFeatureLayer(@"C:\ThinkGeo\Support\MapData\FriscoTrans\streets.shp");
    streetLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(new LineStyle(new GeoPen(GeoColor.StandardColors.Black, 14),
        new GeoPen(GeoColor.StandardColors.LightGoldenrodYellow, 12)));
    streetLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


    TextStyle textStyle = new TextStyle("FULL_NAME", new GeoFont("AriaL", 8, DrawingFontStyles.Bold), new GeoSolidBrush(GeoColor.StandardColors.Black));
    textStyle.SplineType = SplineType.StandardSplining;
    streetLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(textStyle);


    LayerOverlay layerOverlay = new LayerOverlay();
    layerOverlay.Layers.Add(streetLayer);

    wpfMap1.Overlays.Add(layerOverlay);

    streetLayer.Open();
    wpfMap1.CurrentExtent = streetLayer.GetBoundingBox();
    streetLayer.Close();

    wpfMap1.Refresh();


Val, 



Thanks for you response. I had the same basic code except that mine is using a collection of TextStyles, which tripped me up a bit. I now have my code working.


But I have noticed that whether the text is splined or not depends on the current ZoomLevel even though it appears that the text should be splined it is not.


The first image below shows text that is not splined, but I believe should be.  One label is splined, but the other is not.  The second image is one ZoomLevel higher than the previous and now the splined text has changed, but still has a label that is not splined, but should be.



Thanks, 

Dennis 

 


 




Dennis,


  I think that the splinning of your street label is actually happening as expected based on your data and the zoom levels you are at. I don't know your street data that you are labeling but I think that what is happening is as it is described below in my drawing:



 Looking at this drawing, I think that you understand what is happening. I have to admit that this label curving logic could be improved and and I have created an issue for the development team for future enhancement. I think that the curving could still apply in the second case. Thank you.