I'm creating a map layout. One of the layers is a point layer of villages, and because of the scale of the map and the clustering of the villages, I think the easiest way to provide the name of the villages is to use a 'key numbering' approach - giving each symbol a number and then giving the names in the legend. "Name" is a field in the shapefile.

My first thought was to label with 'Name' but use the key numbering option within the label engine. However, currently, labelling sees key numbering as a last resort. Using mostly default options, it results in a handful of villages numbered but others with the name given as a standard label. It's a mess. I've found a way to 'trick' the Maplex labelling engine to use the key numbering strategy for all features by setting the offset to a very high number (i.e. forcing the preferred location outside the visible map). However, the resulting key is then automatically placed within the map frame, and is in my case broken into several mini-key scattered around the map, rather than in a legend I can manipulate. Again, it's a mess.

The other option I've considered is:

  • Change the symbology from a single symbol for all villages to 'Unique Values' and choose the Name field. Automatically classify all unique values.

  • Manually change the symbol for each village back to be the same colour (so the symbols are the same).

  • Manually add a shape marker layer to each symbol, offset it to the side, and manually set this to a unique number for each village

This would create a uniquely numbered symbol for each village, and a standard legend would show these symbols with the corresponding names (as that is how the symbology is defined). However, I haven't done that yet because it seems like a massively tedious exercise to manually modify each symbol, and there must be a better way! Also the legend would display the whole symbol for each village, not just the number.

Any ideas? I would have thought this would be a standard feature of mapping software but apparently not! Using ArcGIS Pro 2.2.4


I would create a new field "VILLAGE_NUMBER" and fill it with the number you want to see for each village then use it for labeling.

Then in the legend area you just have to show the attribute table with only two field : the village name field and the new village number field

| improve this answer | |

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.