You are on page 1of 9

Especificar texto para etiquetas

Las cadenas de texto de las etiqueta derivan de uno o varios atributos de entidad. Las
etiquetas son dinámicas, de modo que si los valores de atributo de entidad cambian, las
etiquetas también cambian. Si activa el etiquetado, las entidades se etiquetan
inicialmente en función de un campo; por ejemplo, en un mapa meteorológico, podría
etiquetar las estaciones meteorológicas con la precipitación diaria. Este tipo de etiqueta
basada en un único campo se establece en la pestaña Etiquetado.

Nota:

Este campo de etiqueta se establece de forma predeterminada como el primer campo de


tipo cadena de caracteres que contiene el texto "name" en el nombre (no distingue
mayúsculas de minúsculas). Si no existe ningún campo con ese texto en su nombre, se
establece como predeterminado el primer campo de tipo cadena de caracteres, luego el
primer campo de tipo entero, luego el primer campo de cualquier tipo.

Puede añadir campos del atributo a las etiquetas. Por ejemplo, podría etiquetar las
estaciones meteorológicas con la precipitación diaria y la velocidad máxima del viento.
Independientemente de que las etiquetas se basen en un campo de atributo o en varios,
la instrucción que determina el texto de la etiqueta se denomina expresión de etiqueta.
Cada clase de etiqueta tiene su propia expresión de etiqueta.

Más información sobre cómo crear expresiones de etiqueta

Puede insertar su propio texto en la expresión de etiqueta para que se muestre con las
etiquetas en el mapa. Por ejemplo, en el mapa del tiempo, podría añadir unidades de
medida abreviadas a cada etiqueta (por ejemplo, mm para milímetros y KH para los
kilómetros por hora). También puede utilizar Arcade, Python, VBScript o JScript en una
expresión de etiqueta para cambiar la visualización del texto. Podría insertar una
función para que los valores de precipitación aparezcan en una línea de texto y los
valores de velocidad del viento en otra.

Puede controlar todavía más cómo aparece el texto en el mapa utilizando etiquetas de
formato de texto de ArcGIS Pro. Con las etiquetas de formato de texto puede especificar
diferentes propiedades de visualización de texto para distintas partes del texto de las
etiquetas. Por ejemplo, podría mostrar los valores de precipitación con texto azul en
cursiva y los de velocidad del viento con texto negro normal.

Expresiones de etiqueta
Mediante una expresión de etiqueta avanzada, puede añadir lógica de Arcade, Python,
VBScript o JScript a las expresiones de etiqueta, incluso lógica condicional y bucles.
Por ejemplo, podría generar etiquetas en las que solo esté en mayúscula la primera letra
de cada palabra, independientemente de cómo se almacenen las cadenas de texto en los
campos de atributo. También puede utilizar expresiones de etiqueta para ajustar el
formato de las etiquetas utilizando etiquetas de formato de ArcGIS Pro. Son caracteres
especiales para cambiar el aspecto de todas las etiquetas o solo un grupo. Por ejemplo,
puede utilizar la etiqueta de formato en negrita para que la primera línea de una etiqueta
apilada, de varias líneas, esté en negrita.

Sugerencia:

Las expresiones de Arcade se puedan usar en toda la plataforma ArcGIS. Las


expresiones de Arcade funcionan en tiempo de ejecución, ArcGIS Pro y la API de
JavaScript, mientras que otros lenguajes no funcionan.
Una expresión de etiqueta se limita a una línea única de código, a menos que active la
casilla de verificación Opciones avanzadas en la pestaña Expresión. Si activa la casilla
de verificación Opciones avanzadas puede introducir una función que contenga lógica
de programación y que abarque varias líneas de código.

Nota:

Cuando se utiliza Arcade, se permiten líneas simples y múltiples en la misma ventana.

Si ha codificado descripciones de valor en sus datos, puede usar la opción Usar


descripciones de valor codificado para visualizar las descripciones en la etiqueta en
lugar de los códigos.
Los valores de campo se asignan automáticamente a cadenas de texto. Por tanto, si
desea utilizar un valor numérico en una operación aritmética o al realizar una
comparación, deberá asignarlo nuevamente a un tipo de datos numérico.

Nota:

Cuando se utiliza Arcade, los valores de campo mantienen su tipo de datos.

Los ejemplos a continuación agregan dos campos de números enteros:

Arcade
$feature.FIELD1 + $feature.FIELD2
Python
int([FIELD1]) + int([FIELD2])
VBScript
cint([FIELD1]) + cint([FIELD2])
JScript
parseInt([FIELD1]) + parseInt([FIELD2])

Opciones adicionales del Maplex Label Engine

El Maplex Label Engine proporciona la capacidad adicional para controlar el espacio en


blanco que se utiliza en la etiqueta.

La opción Quitar espacios extra quitará los caracteres de espacio adicionales del texto
de etiqueta. Estos espacios adicionales incluirían todos, anterior, y el éxito de los
caracteres de espacio interior. Si la opción está deshabilitada, los espacios se utilizará
para el formato de, por ejemplo, permitiéndole guión texto dentro de una etiqueta
apilada.

La opción Quitar saltos de línea extra quitará saltos de línea adicionales del texto de
etiqueta. Si la opción está deshabilitada, espaciado de multilínea será posible en el seno
de una etiqueta apilada.

1. Asegúrese de que el etiquetado es la forma activa de mostrar el panel Contenido.


2. Seleccione una clase de entidad en el panel Contenido y haga clic en la
pestaña Etiquetado.
3. En la pestaña Etiquetado, en el grupo Clase de etiqueta, haga clic en Expresión .
4. Elija un lenguaje en el menú Lenguaje.
5. Escriba una expresión Arcade, Python, VBScript o JScript. También puede crear una
expresión haciendo doble clic en el campo para agregarlo a la expresión o
seleccionando el campo, haciendo clic con el botón derecho y
seleccionando Incorporar para agregar el campo a la ubicación en la que se ha hecho
clic, separado por uno o más espacios. Utilice las funciones de texto que se
proporcionan haciendo doble clic para agregarlas a la expresión.

Cuando se utilizan Python, los campos VBScript o JScript están encerrados entre
corchetes [], sin importar el tipo de datos del origen de datos de la capa. Arcade utiliza
una manera diferente para especificar los campos.

Sintaxis de campo
$feature.fieldname

Sintaxis de campo unido

$feature("tablename.fieldname")

Sintaxis de campo de valor de dominio codificado

domainname($feature, "fieldname")

Precaución:

Cuando use Arcade, no utilice nombres de variable que dupliquen nombres de campo.
En esta situación, no se crearán etiquetas.

También puede introducir etiquetas de formato de texto de ArcGIS Pro en el


cuadro Expresión para aplicar formato a una parte del texto de la etiqueta.

Nota:

Cuando utilice Arcade, el formato de campo en la capa no se trasladará a las etiquetas.


Deberá utilizar los métodos de formato de Arcade.

Si la expresión va a abarcar varias líneas de código, active la casilla de


verificación Avanzada y escriba la expresión de la etiqueta. Esto no es necesario
cuando se utiliza Arcade.

6. Haga clic en Verificar para asegurarse de que no hay errores de sintaxis y, a


continuación, haga clic en Aplicar.

Las expresiones de etiqueta normales y avanzadas se pueden exportar como archivos de


expresión de etiqueta (.lxp), que se pueden cargar en otros mapas o capas.

Ejemplos de expresión
A continuación se ofrecen ejemplos de expresiones de etiqueta:

 Concatenar una cadena de caracteres al valor de un campo; por ejemplo, esta


expresión crea una etiqueta donde "Parcela núm." precede el valor del campo
PARCELNO:Arcade

"Parcel no: " + $feature.PARCELNO

Python

"Parcel no: " + [PARCELNO]

VBScript

"Parcel no: " & [PARCELNO]


JScript

"Parcel no: " + [PARCELNO]

 Redondear un número decimal a un número fijo de decimales; por ejemplo, esta


expresión muestra un campo de área redondeado a una sola posición
decimal:Arcade

round(number($feature.AREA), 1)

Python

round(float([AREA]), 1)

VBScript

Round ([AREA], 1)

JScript

function FindLabel ( [AREA] ) {


var ss;
var num= parseFloat([AREA]);
ss = num.toFixed(1);
return (ss);
}

 Convertir sus etiquetas de texto a todo en mayúsculas o minúsculas; por


ejemplo, esta expresión hace que un campo Nombre esté todo en
minúsculas:Arcade

lower($feature.NAME)

Python

def FindLabel ( [NAME] ):


S = [NAME] S = S.lower()
return S

VBScript

LCase ([NAME])

JScript

[NAME].toLowerCase()

 Convertir las etiquetas de texto a las mayúsculas o minúsculas correctas; por


ejemplo, esta expresión toma un campo Nombre que está todo en mayúsculas y
lo escribe en mayúsculas o minúsculas correctamente:Arcade

Proper($feature.NAME, 'firstword')
Python

def FindLabel ( [NAME] ):


S = [NAME] S = S.title()
return S

VBScript

Function FindLabel ( [NAME] ) FindLabel = UCase(Left([NAME],1)) &


LCase(Right([NAME], Len([NAME]) -1))
End Function

JScript

function FindLabel ( [NAME] ) {


var str = [NAME];
var iLen = String(str).length;
var upper = (str.substring(0,1)).toUpperCase();
var lower = (str.substring(1, iLen)).toLowerCase() return upper + lower;
}

 Crear texto apilado; por ejemplo, esta expresión crea una etiqueta con el campo
Nombre y los dos campos de dirección, todos en líneas separadas:Arcade

"Name: " + $feature.NAME + TextFormatting.NewLine + $feature.ADDRESS_1 +


TextFormatting.NewLine + $feature.ADDRESS_2

Python

"Name: " + [NAME] + '\n' + [ADDRESS_1] + '\n' + [ADDRESS_2]

VBScript

"Name: " & [NAME] & vbCrLf& [ADDRESS_1] & vbCrLf& [ADDRESS_2]

JScript

"Name: " + [NAME] + "\r" + [ADDRESS_1] + "\r" + [ADDRESS_2]

 Crear texto apilado en función del texto de un campo; por ejemplo, esta
expresión utiliza la coma para especificar donde tiene lugar la pila:Arcade

replace($feature.LABELFIELD, ', ', '\n')

Python

def FindLabel ( [LABELFIELD] ):


S = [LABELFIELD] S = S.replace(', ', '\n')
return S

VBScript

Function FindLabel ( [LABELFIELD] ) FindLabel = replace([LABELFIELD], ", ",


vbnewline)
End Function

JScript

function FindLabel ( [LABELFIELD] ) {


var r, re;
var str = [LABELFIELD];
re = /,/g;
r = str.replace(re, "\r");
return r;
}

 Aplicar formato a las etiquetas; por ejemplo, esta expresión muestra la etiqueta
como moneda:Arcade

"Occupancy Revenue: $" + round($feature.MAXIMUM_OC * $feature.RATE, 2)

Python

def FindLabel ( [MAXIMUM_OC], [RATE] ):


import locale locale.setlocale(locale.LC_ALL, '') S =
locale.currency(float([MAXIMUM_OC]) * float([RATE]))
return S

VBScript

"Occupancy Revenue: " & FormatCurrency ([MAXIMUM_OC] * [RATE])

JScript

function FindLabel ( [MAXIMUM_OC], [RATE] ) {


var ss;
var num1 = parseFloat([MAXIMUM_OC]);
var num2 = parseFloat([RATE]);
var num3 = num1 * num2 ss = num3.toFixed(2);
return ("$" + ss);
}

 Utilizar solo parte del campo como etiqueta; por ejemplo, en esta expresión se
muestran los caracteres del 3 al 5:Arcade

mid($feature.LABELFIELD, 2, 3)

Python

def FindLabel ( [LABELFIELD] ):


S = [LABELFIELD]
return S[2:5]

VBScript

Mid([LABELFIELD], 3, 3)

JScript
function FindLabel ( [LABELFIELD] ) {
var S;
var str = [LABELFIELD];
S = str.substring(2, 5);
return S;
}

 Especificar una instrucción IF-ELSE condicional. Estas funciones etiquetan


ciudades con su nombre con una fuente grande y roja si su población es igual o
superior a 250.000 y con la etiqueta predeterminada si la población es menor de
250.000:Arcade
 if ($feature.POPULATION >=250000) {
 return "<CLR red='255'><FNT size = '14'>" + $feature.NAME + "</FNT></CLR>"
 }
 else {
 return $feature.NAME
}

Python

def FindLabel ( [NAME], [POPULATION] ):


if int([POPULATION]) >= 250000:
return "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"
else:
return [NAME]

VBScript

Function FindLabel ([NAME], [POPULATION]) if (cLng([POPULATION]) >= 250000) then


FindLabel = "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"
else FindLabel = [NAME] end if
End Function

JScript

function FindLabel ( [NAME], [POPULATION] ) {


if (parseFloat([POPULATION]) >= 250000){
return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>");
}
else return ([NAME]);
}

Nota:

Para etiquetar un subconjunto de entidades en función del valor de un campo, cree la


consulta SQL en la clase de etiqueta en lugar de hacerlo a través de la expresión de
etiqueta.

 Referencia del lenguaje Arcade


 Referencia del lenguaje Python
 Referencia del lenguaje VBScript de Microsoft
 Referencia del lenguaje JScript de Microsoft
(Alguna información se aloja en páginas web no creadas, propiedad o mantenidas
por Esri. Esri no puede garantizar la disponibilidad de estas páginas y no es responsable
del contenido que se encuentra en ellas).

You might also like