Como inserir e modificar rótulos (labels) de shapefiles no ArcGIS?

Confira nosso curso online de QGIS

Aprenda como colocar rótulos nos seus shapefiles e como realizar modificações do tipo, letras maiúsculas para minúsculas, só mostrar alguns rótulos.

Quando estamos montando um mapa, muitas vezes precisamos rotular algumas feições (pontos, linhas ou polígonos).

Esses elementos podem ser polígonos representandos países, estados ou municípios; linhas representando estradas e ferrovias; ou pontos representando áreas amostradas ou sítios arqueológicos.

Iniciarei esse tutorial explicando como rotular tais itens de forma geral, em seguida, mostrarei como rotular apenas alguns itens (e.g. só mostrar o nome das cidades visitadas), utilizando uma expressão (em Python).

Vamos utilizar o shapefile disponibilizado pelo IBGE, basta clicar aqui e fazer o download do arquivo br_unidades_da_federação.zip. Lembrando que outros shapes podem ser acessados aqui.

Após abrir esse shapefile no ArcGIS, digamos que você quer mostrar os nomes dos estados.

Esse procedimento é simples, basta clicar com o botão direito sobre o shapefile, e clicar em Properties. Em seguida, clique na aba Labels, marque a opção “Label features in this layer” e na caixa Text String, selecione NM_ESTADO, ou seja, nome do estado. Depois, basta clicar em aplicar e Ok.

Certo, mas e se o seu estudo estiver sendo realizado no estado do Amazonas e você quer mostrar só esse nome?

Para isso, voltaremos às propriedades do shapefile, e na aba Labels, ao invés de somente selecionar um item na caixa Text String, vamos clicar no botão Expression.

Aqui, você precisará modificar a ultima caixa da janela, chamada parser para o item Python, em seguida, marque a caixa Advanced. Em seguida, cole o texto abaixo conforme a figura, e não se esqueça dos espaços no inicio (eles são importantes na linguagem Python).

def FindLabel ( [NM_ESTADO] ):
  if [NM_ESTADO] == "AMAZONAS":
    return [NM_ESTADO]
Criação de Expressões para Rótulos
Criação de Expressões para Rótulos / Etiquetas

Agora é só clicar em ok e aplicar as modificações realizadas.

Esse código esta informando ao ArcGIS que nós criamos uma função chamada FindLabel, onde um dos seus argumentos de entrada é [NM_ESTADO]. Em seguida, definimos uma condição para que, se [NM_ESTADO] for igual à AMAZONAS, o ArcGIS deverá retornar o valor que esta dentro de [NM_ESTADO], ou seja, Amazonas.

Ainda não satisfeito, você, criterioso, não quer que o as letras fiquem todas em MAIÚSCULAS. Isso é simples de se resolver, basta acrescentar, no mesmo código, a terminação .title() depois de [NM_ESTADO]. Como a seguir:

def FindLabel ( [NM_ESTADO] ):
  if [NM_ESTADO] == "AMAZONAS":
    return [NM_ESTADO].title()

Acrescentando outros nomes

Para finalizar a postagem, irei mostrar como acrescentar outros estados utilizando o mesmo procedimento.

Para isso, é preciso usar o comando elif, onde você poderá rotular os nomes de outras feições. Vamos acrescentar os nomes dos estados do Pará e do Maranhão.

def FindLabel ( [NM_ESTADO] ):
  if [NM_ESTADO] == "AMAZONAS":
    return [NM_ESTADO].title()
  elif [NM_ESTADO] == u"PARÁ":
    return [NM_ESTADO].title()
  elif [NM_ESTADO] == u"MARANHÃO":
    return [NM_ESTADO].title()
  else:
    return

Note que para os estados do Pará e do Maranhão, colocamos um “u” no inicio de seus nomes, isso porque eles são textos que contém acentos. Se não colocássemos esse u (para marcar como texto Unicode), o ArcGIS simplesmente não mostraria os rótulos.

E caso você precise adicionar outros estados, bastar inserir outras linhas com elif, seguida do comando return, mantendo sempre o comando else por último.

Rótulos aplicados no ArcGIS
Rótulos aplicados no ArcGIS do nosso tutorial.

Qualquer dúvida ou dificuldade para aplicar esses comandos aos seus dados, deixe seu comentário abaixo e responderemos assim que possível.

Atualização 31/03/2017

Realizamos um vídeo explicando esse procedimento, confira ele abaixo.
[youtube https://www.youtube.com/watch?v=wNgmryHcsyU&w=560&h=315]



Clique na figura abaixo e assine nossa lista de emails para receber nosso ebook "Como criar mapas de localização com ArcGIS 10.x".

Apostila Mapa de Localização Banner

Author: Fernando BS

Engenheiro Ambiental e de Segurança do Trabalho. Atua nas áreas de geoprocessamento, mineração e hidrologia. Busca soluções utilizando softwares como QGIS, R e Python.

8 thoughts on “Como inserir e modificar rótulos (labels) de shapefiles no ArcGIS?”

  1. Como faço pra por um sufixo depois do rótulo? Por exemplo: estou medindo a área de polígonos em hectares, rotulei os polígonos com a field “área” que criei, mas fica apenas o número e queria colocar o sufixo “ha”. Tem como fazer isso?

    1. Bom dia João Sauvesuk,

      Sim, é possível. Para realizar esse procedimento, você irá concatenar, ou seja, unir, duas informações.

      Considerando o seu exemplo, no código de python do Label Expression, adicione após o return [area] o texto + ” ha”. De forma completa, ele vai ficar assim: return [area] + ” ha”.

      Você pode realizar esse procedimento para adicionar qualquer unidade (ou texto) às suas medidas.

  2. Como coloco o simbolo de “%” em um número? Quero mostrar no mapa, e na tabela de atributos estou sem o percentual pois não dá para inserir.

    1. Bom dia Nathalia,

      Você terá que criar uma expressão para acrescentar a porcentagem ao número existente na tabela de atributos. O procedimento é semelhante ao que respondemos no comentário do João Sauvesuk. Considerando que “Porcentagem” é a coluna que tem os seus valores, na janela do “Label Expression”, no código de python, acrescente após o return [Porcentagem] o texto + “%”. No final, ele vai ficar desta forma: return [Porcentagem] + “%”.

      (obs.: Não é possível inserir o símbolo % na tabela de atributos pois o campo que contém a porcentagem é numérico – só números – seria necessário criar um campo de texto para adicionar o símbolo).

Deixe um comentário para Fernando BS Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *