Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a problem: I am trying to add a label to a feature that has two fields embedded in it. The first field simple has two numbers and I would like them to be placed within a circle (text symbol - State Route HWY in arcmap). The second field is the name of the feature.

Is there a script that I can use to specify that the first field needs to be contained within the symbol and the second field should be placed next to it or below it?

I am currently using Maplex to display both labels using 2 separate queries, but arcmap won't project them next to each other. I am using arcmap 10.0 (arc info license).


share|improve this question
Can you just make a copy of the layer in the TOC and label them differently (one with circle with one field and the other showing the other field below at a offset)? – artwork21 Dec 12 '13 at 15:06
That is what I'm currently doing and arcmap can't seem to place them next to each other no matter how I specify the placement. It will either stack them completely or put them wherever it pleases... – user24272 Dec 12 '13 at 15:13

EDITED: I understand this is NOT an answer, but I wanted to attach an image to get a better understanding of what's going on.enter image description here

In the image, I have 3 polygons, each with two fields. Using classes, I created one label class for the marker, and another for the text label. Both are using Always Horizontal placement.

Is this similar to what you're trying to achieve?

Edit includes polygons rather than polylines.

share|improve this answer
Thank you for the response! It is similar to what I am attempting with one large caveat: the labels must be placed within the feature polygon. Specifically, I'm dealing with platted subdivisions and I want the subdivision number placed in a circle and the name of the plat below or at least near it. Your fix is what I'm looking for sans the attachment to the line.. – user24272 Dec 12 '13 at 17:51
Please see my edited response. – evv_gis Dec 12 '13 at 18:11
Yes - that is exactly what I am trying to do; however, I also have 5 other layers that need to be projected and labeled and everything gets very busy very fast. What ends up happening is that once priority is assigned to each indiviual layer (including if labels can go over a polygon border depending on its weight etc..) arcmap can't decide where it wants to put everything - especially if the plat is small AND includes other features such as parcels, roads, streams etc.. Thus my problem would be significantly smaller if I could tie the labels together explicitly with something like py script – user24272 Dec 12 '13 at 18:27
If things are too busy, I recommend removing labels. Try other symbology settings to define your features rather than labeling, i.e. unique symbols, classed values, etc. A python script will only go so far before it too cannot properly place your items. Or, if you really need to place the labels in specific locations, convert them to annotation and place them wherever you'd like. – evv_gis Dec 12 '13 at 18:38
I think that you or @user24272 should copy/paste anything relevant from your "Answer" to improve the Question. Then the "Answer" can be deleted or turned into a proper Answer. – PolyGeo May 8 '14 at 11:46

In your case I suggest that you use a single label based on your two fields.

layer properties > label > expression (examples in vbScript, more details here )

on the same line

[field1] & " " & [field2]

or (on different lines)

[field1] & vbnewline & [field2]

you can even change the properties for each field

"<FNT name=""Arial"" size=""18"">" & [field1] & "</FNT>"
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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