[GIS] How to “Never Remove” labels in Maplex

arcgis-10.0labelingmaplex

The out-of-the-box labeling engine does a fine job with forcing all labels to display despite of overlap. The same cannot be said of Maplex.

I have a polygon layer obtained from the Ontario Provincial government which is solely used for labellings geographical features. (Geographic Name Extent) This is a polygon layer that contains all known "Geographical Name" features along with attributes such as various categories and names in English and French. (Federal government CanVec/NTDB uses a point layer for a similar purpose)

I have a layer that I maintain in which i store the Label schema; all the label 30 definitions and symbols. I simply just import the label schema and turn the labels on. (export and manually correct if needed) I am in the process of updating this layer to work with the Maplex engine but I am unable to place all the labels.

  • I have 30 label classes
  • each class is defined by a simple SQL query
  • each class has a different symbol
  • each class has different placement properties depending on type
  • all label classes are set to "Never Remove (Allow Overlap)"
  • classes with highest priority have a weight of 1000, lowest priority 0

Still many labels are not placed….
Any ideas?

EDIT: I moved the layer to an empty map and I can confirm that when Maplex is off everything is labelled. Turning Maplex on un-places all SMALL POLYGON labels. However, if I zoom extremely close the label appears. I am beginning to feel like Maplex might have been a waste of money. I tried to bring in the layer in question from scratch and creating just one default label class using Maplex – turned on "Never Remove" with same results. All small polygons indicating a location of a town or a bay will not label until over-zoomed. A bug?

EDIT 2: It gets better! I exported all to annotations and out of 1002 features only 429 annotations were created. (Out of which 4 are unplaced) 573 annotations Which I was hoping to "place" manually are missing.

Best Answer

That's a tough one.
The absolute best way to force every label to display is to use an autocad drawing with labels in it. (don't expect you to use this method)
But I have fought many a fight to "force" ESRI label engines (all of them) to label everything.
Next best method is to create a feature annotation in a gdb, and then show unplaced labels, and move them and turn on the status to placed.
Next best is what you are doing.
Click on every button in the dialog changing sizes (also don't forget to change the document scale up or down a little to manage some of this) and priority levels until you find one that is closer than where you are (far away).

Related Question