ThinkGeo.com    |     Documentation    |     Premium Support

Labels for line shapefiles, few if any at all

 Recently we have noticed that our app doesn't display labels for layers build as line shapefiles. There are some labels, but waaaay too few, and in most cases none show up at all. I'd post a sample app, but the shapefile itself that I would need to include is bigger than 250k limit. Needless to say the same shapefile displays properly in our old app that doesn't use ThinkGeo engine, proving that data is not missing. The fact that _some_ labels do show up also proves that the code does access the data in the shapefile too. Yet somehow not enough labels show up. 


Here is my code:



public partial class _Default : System.Web.UI.Page
{
  private LayerOverlay layerOverlayX;

  protected void Page_Load(object sender, EventArgs e)
  {
    if (!Page.IsPostBack)
    {
      mapMain.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#B3C6D4"));
      CreateOverlay();
      mapMain.MapUnit = GeographyUnit.DecimalDegree;
    }
  }

  void CreateOverlay()
  {
    layerOverlayX = new LayerOverlay("base", true, TileType.MultipleTile);
    layerOverlayX.ClientCache = new ClientCache();
    mapMain.CustomOverlays.Add(layerOverlayX);
    CreateShapeLineLayer("roads", MapPath("~/Data/interstates.shp"),
      LineStyles.Interstate1, TextStyles.Interstate1("ROUTE_NUM"));
  }
  void CreateShapeLineLayer(string strName, string strShapeFileName, LineStyle styleLine, TextStyle styleText)
  {
    ShapeFileFeatureLayer tempLayer = new ShapeFileFeatureLayer(strShapeFileName);
    tempLayer.Name = strName;
    tempLayer.RequireIndex = false;
    ZoomLevel zlevelBase = tempLayer.ZoomLevelSet.ZoomLevel01;
    zlevelBase.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
    zlevelBase.DefaultLineStyle = styleLine;
    zlevelBase.DefaultTextStyle = styleText;
    layerOverlayX.Layers.Add(tempLayer);
  }
}

 



 Adrian,


  The default style will not draw many labels and we are scheduled to update this.  Below is the code to tweak some of the TextStyle properties to draw more labels.  At least you can see what players are involved and you can tweak away until you get what you want.  Many times it is the way the shape file was digitized but we need to get that file to verify.  If this code or a slightly modified version does not get what you want then I suggest you include some screenshots of the issue.  Also see if you can FTP the file to us.  You can contact support at support@thinkgeo.com.  I do think the code will help you though.




   ShapeFileFeatureLayer austinStreetsLabelLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\austinstreets.shp");
   austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Interstate1("FENAME");
   austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
   austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.GridSize = 10;
   austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.SuppressPartialLabels = true;
   austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.TextLineSegmentRatio = 1;
   austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


David



 Alas, the suggestions you made didn't help. I will try to ftp you the demo app where I isolated the issue, including the shp file.



Adrian, 
  
 Please send it to support@thinkgeo.com if it’s not very big. Or you can contact support@thinkgeo.com to ask for a FTP address. 
  
 Thanks, 
 Johnny

Adrian, 
  
   Can you add a screenshot of the data in the interim?  That might shed some light on what the issue is.  Just an idea while we wait for the data. 
  
 David

I opened up ticket 2882 in Web Edition. It contains the demo app showing the problem, as well as snapshots. Sorry I took so long to get you the data. I’ve been sick.

Ok, we have that ticket assigned to a support resource. We should have an answer for you on monday. Thank you for your interest in Map Suite.