ThinkGeo.com    |     Documentation    |     Premium Support

Label gets chopped off

Hi ThinkGeo,


What is best strategy or option settinng TextStyle to achieve maximum labels fully drawn.


I noticed followin problems when working labels


1) Some labels are chopped off vertically and some horizontally.


2) Some labels are   not drawn even though it seems to have enough space around it


Regards,


Anil



 


Anil,
 
Here are the answers for your questions.
1) The text style is set on a zoom level of a feature layer, you can set DrawingMarginPercentage property of this feature layer large enough to avoid 
2) You can try to set SplineType property of TextStyle to ForceSplining.
 
Thanks,
James

Thanks it improves labelling a lot. 
  
 I noticed on Google layer , high zoom levels like 17/18 Labels and Line style do not show while it does show with WMS overlay. 
  
 Regards, 
 Anil 


 


Anil,
 
I guess that you want to compare GoogleMapsLayer and WorldMapKitWmsWebOverlay, and something shows on WMS overlay but Google layer doesn’t, right? Which is this thing? Label, Road or something else?
 
I think it’s not easy to compare, because Google and MapSuite use different ZoomLevelSet, so zoom levels 17/18 will be different, and also they are in different projection.
 
Could you provide a screen-shot to show your problem?
 
Thanks,
James

Hi James,


 In my case google layer is restricted to level 18 (using JavaScript). I am attaching the code to depict the problem on top of sample UseGoogleMap and relevent snapshot. (note I want the text labels to be visible from level 7 onwards.)


Similar problem occurs for Line style at level 18.


Thanks

Anil



LabelmissingAtLevel18.zip (169 KB)
UsingGoogleLayerUpto18.zip (3.21 KB)

 


Anil,
 
This problem is cause by multiple tiles. You can set a appropriate value for InMemoryFeatureLayer.DrawingMarginPercentage according to the length of your text and your problem will be solved. In your sample, I add code below and everything goes well.
 
layerLabelMarkers.DrawingMarginPercentage=50

  
Thanks,
James

Hi James, 
  
 I still have problem even after bumping up DrawingMarginPercentage  to 50 or higher value. I am using 4.5.75.  
  
 Even if I pan to left or right it still does not show the label. 
 Regards, 
 Anil

 


Anil,
 
I have done a test using 4.5.75 and didn’t find out the problem you depicted. Here is a sample for you. This sample works fine on my machine, you can have a try. 
Could you give us a specific information for it If the problem still exists ?
 
Thanks,

James



Post8668.zip (126 KB)

Hi James,


I am having problems on all browsers that I use namely IE, Safari and FireFox. (See snapshot)


I am using IE8 on WIndows7


Regards,


Anil



NoLabelAtLastlevel.zip (299 KB)

 


Anil,
 
That’s not an issue. That’s what your code is incorrect. The following code set the scale of zoomLevel19 and zommLevel20 as 0, so the layerLableMarkers didn’t show up. Just remove the code blow and your issue will be fixed.
 
layerLabelMarkers.ZoomLevelSet.ZoomLevel19.Scale = 0;
layerLabelMarkers.ZoomLevelSet.ZoomLevel19.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
 
Thanks,
James

Hi James, 
  
 Removing those two lines works. 
  
 In my regular application I use both Google layer and WMS layer (use label layer) as base overlay option. 
  The above lines were added to restrict the zoom level of WMS layer to level 18 and less. While for Google layer I use following JavaScript. 
 The following JavaScript does not work for the WMS layer or label layer. 
  
  var OnOverlaysDrawing = function (layers) { 
             for (var i = 0, l = layers.length; i < l; i++) { 
                 var layer = layers
                 if (layer.id === "Google Map" ) { 
                     layer.MIN_ZOOM_LEVEL = 1; 
                     layer.MAX_ZOOM_LEVEL = 18; 
                     break; 
                 } 
             } 
         }    
 Regards, 
 Anil

HI James, 
  
 Once I use my piece of code posted in   gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/8720/afv/topic/Default.aspx 
 to control zoom levels and leave the Label layer ApplyZoom to 20 then it fixes the problem. 
  
 Regards, 
 Anil  


Thanks Anil.