ThinkGeo.com    |     Documentation    |     Premium Support

Labels on top

I have a map with:


- A bottom static road layer.  This shape file layer has road names which I display as labels.


- Other dynamic layers that will display some of the roads in red and others in blue.  For whatever reason, my labels do not display in the static layers. 


The road names left from the bottom static layer don't show well enough.  They're buried by my dynamic layers.


Any pointers to places to look?   Is there something special I need to do for labels in a dynamic layer?


I set up the text column the same way I do the static layer, but the labels don't appear:


 



 



 


if (LabelName != "")GeoColor.FromArgb(255, LabelColor); false;if (AddHalo == true)new GeoPen(GeoColor.StandardColors.Yellow, 2); 


{


ThisTextStyle.TextSolidBrush.Color =


ThisTextStyle.TextColumnName = LabelName;


ThisTextStyle.SuppressPartialLabels =


 


{


ThisTextStyle.HaloPen =


}


 


}


 


 


 



// Text/label setup



 


Frank,
 
Do you mean some labels are cut off, even though lots of labels don’t display at all in static layers? If it is, please try setting the properties like “OverlappingRule”, “GridSize”, “DuplicateRule” etc like below for the static road layer.
 

 


ShapeFileFeatureLayer austinStreetsLabelLayer = new ShapeFileFeatureLayer(Server.MapPath(@"~\SampleData\USA\Austin\austinstreets.shp"));
                austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.LocalRoad1("FENAME");
                austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.SuppressPartialLabels = true;
                austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping;
                austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.GridSize = 1;
                austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
                austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
austinStreetsLabelLayer.DrawingMarginPercentage = 100;


 



If it’s not what I ponter, to avoid confusion, could give us a screenshot about how it looks like? Otherwise, could you give us a simple demo? It seems that some parts of the code you posted were cut off.
 
Thanks,
 
Johnny,

I meant to attach a screen shot.  Wish I would have remembered that.   It is now attached to this reply.


I don't mean road labels getting cut off.  There are two aspects, and I'll take success with either:


1. The road labels of the static shape file do not show well enough through the upper dynamic roads.  Even though I have dialed the transparency of the dynamic roads.   This, though, is probably the path of a kludge, anyway.


2. The real issue is: why can't I get labels showing on the dynamic roads?   They are a subset of the same features from the shape file, only placed in dynamic layers to color differently.   I can't get those labels to display.


I actually lost quite a few hours arm wresting this.  Any assistance greatly appreciated.


 



And the answer is:   in blue.       


 For the dynamic layers, I need to explicitly add the column.


________________________________________________________________________________________


 



 


ThisDynamicLayer.Columns.Add(new FeatureSourceColumn(LabelName));


 


ThisDynamicLayer.FeatureSource.Close();


 



ThisDynamicLayer.FeatureSource.Open(); 



Frank, 
  
 Very glad to hear that. As i guess, The DaynamicLayer in your application is with InMemoryFeatureLayer you defined, right? If it is, we need to add the columns by us manually. Anyway, the good news is you have resolved it. 
  
 thanks, 
  
 Johnny