I've implemented labelling in my code and solved a fair amount of problems that seemed insurmountable at first. Now that the labelling is working I have directed my attention to the positioning of the labels and am extremely frustrated with the capabilities offered by the base ArcEngine.

I have no experience with Maplex (or any other tool) and suspect that that extension (or a 3rd party tool) is the only way to do decent labelling in the ArcGIS product line. Is this a true picture of the general experience? If so, what solution would you, dear reader, offer? Is Maplex the best and only way? Are there acceptable 3rd party solutions?

  • 1
    True - It was the only way to place text professionally. (Even National Geographic use it.)
    – Mapperz
    Dec 21 '11 at 15:33
  • 2
    While it is true that Maplex provides the best automatic labeling, the best cartography always involves a great deal of manual label placement. Having your labels placed by Maplex and then tweaking them will give the best results.
    – Petr Krebs
    Dec 21 '11 at 15:42
  • ADDITION: I know I didn't say this (and I appreciate the wonderful comments and answers so far) but the primary goal in my case is to provide acceptable labeling without user intervention only for viewing purposes.
    – Chaz
    Dec 21 '11 at 16:08

In my experience, most cartographic companies that use ArcGIS for their maps actually export the map to an Adobe Illustrator file and do all of the labeling there -- at least the final tweaks, as they may use Maplex to get a good rough draft. But yes, the regular ArcGIS labeling engine is horrendous. Maplex is marginally better and, in fact, any automated label placement engine will produce disappointing results compared to the work of a skilled cartographer.

It all comes down to how much time you're willing to invest in quality labeling. Maplex can be a decent middle-ground approach.


The most 'professional' label positioning for ArcGIS is using Annotation Feature Classes. Start with auto-labeling or Maplex, but then right click the feature class and choose Convert to Annotation. From there you can modify each label to your heart's content, and you can create annotation layers that only appear at certain scale levels. You won't have to worry about labels moving around, and you can get a pretty good-looking result without having to go into Adobe Illustrator.

  • So how do you do that with joined tables? I can't figure out how to get a featureWorkspace from a join that works with IConvertLabelsToAnnotation.
    – Chaz
    Dec 21 '11 at 19:31

As someone who is currently doing a lot of automatic label placement coding (not related to ArcGIS), all I can say it is very, very difficult to achieve something that won't require human post-processing of labels. Just take a look at vast amount of scientific articles about auto label placement. I guess that's why companies charge $2000+ per license for products like Maplex. Whether those are worth the price, I don't know. My goal is to provide something decent for a fraction of that price (or even free).

  • I appreciate your answer and certainly agree that even 'good' placement will probably require tweaking but I only want "OK" placement because the labels are only for viewing purposes. If information is obscured or unusable I would expect the user to drop the labels and try again with a different selection. (Like most here I'd love to see what you're able to create.)
    – Chaz
    Dec 21 '11 at 21:58
  • maperitive.net is a very worth while project and keep up the good work. If the question was no so ESRI centric then would of mention Maperitive.
    – Mapperz
    Dec 21 '11 at 22:02
  • Yeah, life could be sweet without marketing demands! (ArcEngine is not my choice.)
    – Chaz
    Dec 21 '11 at 22:50

You are right, base labeling capability is far from professional.
At my work it is by far the most contentious subject (in mapping discussions)...
when to label, what to label, how to label.
everybody's a cartographer.

Maplex is a great step in the right direction but still a far cry from perfect.
(I've spent many hours in front of autocad placing labels into tight areas where labels were required)

My MO is to use KISS first. Especially whith the technology availble. Make popup information and report information to try to overcome using too much labeling.
If the map is interactive much more information can be extracted/drilled down to than any bad labeling can accomplish.

if that doesn't work then using some labeling tricks
tips and tricks pdf
esri help
maplex help

and sometimes just using a crowbar - like a.making multiple copies of a layer and labeling with one and displaying symbology with another, b.creating graphic blocks and grouping objects, c.placing ballon callouts, and d.using inset maps.
I have even used autocad map to place ALL labels for streets and then displayed that georeferenced drawing (with text only in it) in arcmap. It ansered two of the main problems of all esri labeling. ALL streets were labeled, and they all STAYED where they were placed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.