ThinkGeo.com    |     Documentation    |     Premium Support

Points and Street Label Rendering

Hello,


i am facing problem on rendering both points and street labels, for the points view the labels are not consistent on zoom levels although the instruction is to display at all zoom levels. As for the street none of the names appear at all. below is the source code:


 
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
SilverlightMapConnector1.MapUnit = GeographyUnit.DecimalDegree;
ServerLayerOverlay layerOverlay = new ServerLayerOverlay("NativeServer");

ShapeFileFeatureLayer mainLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/main.shp"));
                mainLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Highway1;
                mainLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Highway1("name");
                mainLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.SuppressPartialLabels = true;
                mainLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
                mainLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping;
                mainLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
                layerOverlay.Layers.Add(mainLayer);

                ShapeFileFeatureLayer poiLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/airport.shp"));
                poiLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.Capital1;
                poiLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Utility1("name");
                poiLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.SuppressPartialLabels = true;
                poiLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
                poiLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping;
                poiLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
                layerOverlay.Layers.Add(poiLayer);
                
                SilverlightMapConnector1.ServerLayerOverlays.Add(layerOverlay);
            }
        }
    }

 I have also attached some snapshots.


regards,


Rhandy



949-images.zip (112 KB)

Rhandy,



First of all, could you check the "name" column is existing in the DBF file?

Secondly, try to separate the mainLayer to two layers, one is for road while another one is for labeling For example:
ShapeFileFeatureLayer mainLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/main.shp"));
mainLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Highway1;
mainLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
layerOverlay.Layers.Add(mainLayer);

ShapeFileFeatureLayer mainLabelLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/main.shp"));
mainLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Highway1("name");
mainLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.SuppressPartialLabels = false; // try false here.
mainLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
mainLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping;
mainLabelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
layerOverlay.Layers.Add(mainLabelLayer);



Hope it helps. Any questions please let me know.



Thanks,

Howard

 



Hello,


I tried the following:



ShapeFileFeatureLayer mainLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/sample.shp"));
        mainLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Highway1;
        mainLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel=ApplyUntilZoomLevel.Level20;
        layersOverlay.Layers.Add(mainLayer);

ShapeFileFeatureLayer mainLayer1 = new ShapeFileFeatureLayer(MapPath("~/app_data/sample.shp"));
        mainLayer1.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Highway1("Name");
        mainLayer1.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.SuppressPartialLabels = false;
        mainLayer1.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
        mainLayer1.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping;
        mainLayer1.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
        layersOverlay.Layers.Add(mainLayer1);
 

 


BTW, i am currently using the temporary version (SilverlightEditionEvaluation3.0.368) and i have the same problem labeling the streets, the instructions was to display from zoomlevel 1 untill 20 but instead it display the labels on the zoomlevel 18 to 20 and this is not consistent sometimes on the zoomlevel 16.  i am attaching a sample data that display the labels on zoomlevel 18/19 to 20.


regards,


rhandy



971-datasample.zip (4.28 KB)

Rhandy,



The problem is that the length of the label is longer than the line; so that, we'll suppress the label.



We have a property to force to draw the label within a specified ratio range. please modify the line code as following.ShapeFileFeatureLayer mainLayer1 = new ShapeFileFeatureLayer(MapPath("~/app_data/sample.shp"));
mainLayer1.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Highway1("Name");
mainLayer1.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.TextLineSegmentRatio = 100;
mainLayer1.DrawingMarginPercentage = 100;
mainLayer1.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.SuppressPartialLabels = false;
mainLayer1.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
layerOverlay.Layers.Add(mainLayer1);



Any questions please let me know.



Thanks,

Howard



Hi Howard, 
  
 Sorry for the delay, we have completely different timezone and working schedule, we work half-day on Thursday and Friday is off, our 1st working day is Saturday which is your off i think.  Anyway, i couldn’t test the new sets of instructions you’ve sent, my license already expired and i don’t remember when did i install it. to whom i can request for extensions at least until my presentations, 1st week of September. 
  
 Thank you and best regards, 
 rhandy

Rhandy, 
  
 Silverlight Edition is in beta and it won’t expire until September, 1st. Could you provide me what version are you using now? 
  
 Thanks, 
 Howard

Hi Howard, 
  
 I am using the SilverlightEditionEvaluation3.0.368 that was sent to me by the support team, i extracted it and use it for one day and the next day i got an error: 
  
 System.InvalidOperationException: The evaluation has expired(SilverlightClient).  Please contact ThinkGeo for purchasing option or an extension to the trial. 
    at ThinkGeo.MapSuite.SilverlightEdition.x6d719af406ea4c2c.x9c99cf4f2a082282() 
    at ThinkGeo.MapSuite.SilverlightEdition.x6d719af406ea4c2c.x12e7df23649722cf(Double x86d4512e4c7d8814, String x34decc57f0820440, Double xaee3bf422e2fd725, x1acec04cd58c1af5 xa798986acdb65a29, Double xe21f77686f8b957e, x1acec04cd58c1af5 x495f4164830ffad5) 
    at ThinkGeo.MapSuite.SilverlightEdition.GeoColor…ctor(String name, x32ed2540aa73da36 colorType, Int32 alpha, Int32 red, Int32 green, Int32 blue) 
    at ThinkGeo.MapSuite.SilverlightEdition.StandardColors.get_Transparent() 
    at ThinkGeo.MapSuite.SilverlightEdition.GeoPen…ctor() 
    at ThinkGeo.MapSuite.SilverlightEdition.AreaStyle…ctor() 
    at ThinkGeo.MapSuite.SilverlightEdition.ZoomLevel…ctor(Double scale) 
    at ThinkGeo.MapSuite.SilverlightEdition.ZoomLevelSet…ctor() 
    at ThinkGeo.MapSuite.SilverlightEdition.Map…ctor() [Line: 0 Position: 0] 
    — Inner Exception — 
 The evaluation has expired(SilverlightClient).  Please contact ThinkGeo for purchasing option or an extension to the trial. 
  
 Best Regards, 
 rhandy

Rhandy, 
  
 I appologize that I mistake the expire time of our current version is September 1st; actually it’s Augest 1st. Thanks for reporting it and we’ll refresh our public package today. 
  
 We are now working on the Microsoft Silverlight 3.0 environment upgrading, and it’s a big change in our product which is still working on. So this time we’ll only refresh the expire time of our current public release today. We’ll let you know when it’s available.  
  
 So sorry for the inconvenience and thanks for reporting. 
  
 Thanks, 
 Howard

Howard,


I'm getting the same expiration error message. Please let us know when the refreshed package is available for download as my development projects have now come to a halt.


Thanks - Bob


 



Bob, Rhandy 
  
 The evaluation is available for downloading now on the web site. 
  
 Sorry for the inconvenience. Let me know if you have any questions. 
  
 Thanks, 
 Howard

Hello Howard, 
  
 I still get the same problem, it seems that the new eval is not uploaded on the web site, the update version did not change: 
  
 Version 3.0.304 Beta 2 — Updated 5/26/2009 — 51.7 MB 
  
 Best Regards, 
 rhandy

I'm surprised that there are only two people who are reporting this problem. Are there any other users out there evaluating this product? Or are they waiting for the SL3 version?



Hi Bob, 
  
 We actually went out and bought a couple of copies, even the retail version has expired!  Patiently waiting any version that has not expired, projects stopped! 
  
 Regards 
  
 John

Rhandy, 
  
 Could you download it again. I downloaded it and it said updated by 8/5/2009. 
  
 Please let me know if you need any assistance. 
  
 Thanks, 
 Howard

Howard - I downloaded the "latest" eval and I still get the same problem. Here are my screen shots:


Contents of zip file:



Contents of Client Folder:



DLL Properties:




 


Results:



 


 



Looks like the first three images got dropped: Here there are again:


Zip file contents:



Client Folder:



DLL Properties:



Sorry - my bad - the browser was slow to display the first three images of the previous message and I thought they got dropped!


 



Bob, John 



Silverlight Edition is in Beta, and we are designing the strategy of our production. So currently we made Auguest, the 1st as expire time for both Evaluation and Full edition in our current product temporary. Also We'll have a new version soon. 



I downloaded the public release from the web site and the samples work fine. Then I modify my machine time to Oct, the 2nd. It throws exception as yours. Then I changed the date back, it works fine. 



Could you make sure the Dll is referenced right; then clean the project and rebuild you solution; also, check the date of your machine.  



Please let me know if you have more information. 



Thanks, 

Howard



Howard - I found my problem. Double checking my references, I found a reference to the "old" version. Updating my references fixed the problem. Thanks.

Bob, 
  
 No problem. Thanks for reporting this issue to us. 
  
 If you have any questions please let me know. 
  
 Thanks, 
 Howard.

Howard, 
  
 Downloaded from FTP site back up and running again.  Thanks 
  
 John