Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

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 am trying to use tilemill labels and Shield together for my road designing. But there is a problem with that. Please see the following image for better understanding. The shield is ovarlapping the Road name.

enter image description here

I used the following code for my .mss

#road::Labels {
      text-name: [ROAD_NAME];
      text-face-name: "Candara Bold";
      text-size: 16;
      text-fill: #000000;
      text-placement: line; 
      text-halo-fill: #f6f3f3;
      text-halo-radius: 1;
      text-spacing: 400;
    #road::N_Shield {
        [ROAD_TYPE =1]{
        shield-file:  url("C:\wamp\www\shield.png");
        shield-name: [ROAD_NO];
        shield-face-name:"Arial Bold";
        shield-fill: black;

Anyone can help me what to do.

share|improve this question
up vote 2 down vote accepted

You should try to vary your shield-spacing and text-spacing values. In other words make them different. This may help the placement of shields occur in a different place in the line than the text.

But a more robust solution is to use text-label-position-tolerance and shield-label-position-tolerance along with text-allow-overlap:false and shield-allow-overlap:false. This basically says to Mapnik: "Don't allow labels and shields to overlap but rather try moving them farther along the line until there is room to place them". You can see an example of this in the blog post about upcoming Mapnik features here: In short, Mapnik 3.x will support both of these features but Mapnik 2.x only supports text-label-position-tolerance.

share|improve this answer

Try to put shield-allow-overlap:false to avoid overlapping, it should solve your problem.

share|improve this answer
Probably you did not understand it. I know overlap false will banish the symbol. But I want to to all the shield and text annotation – Devils Dream Jan 30 '13 at 9:55

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.