Generar expresiones de etiqueta
Puede utilizar expresiones de etiqueta para ajustar el formato de las etiquetas. Además de las funciones de inserción y escritura de secuencias de comandos, puede utilizar etiquetas de formato de ArcGIS en expresiones de etiqueta. 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.
Obtenga más información sobre el formato de etiquetas con etiquetas de formato de texto
Una expresión de etiqueta se limita a una línea única de código a menos que marque la casilla Avanzada del cuadro de diálogo Etiquetar expresión. Si marca la casilla Avanzada puede escribir una función con lógica de programación y que abarque varias líneas de código.
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. Los ejemplos a continuación agregan dos campos de números enteros:
int([FIELD1]) + int([FIELD2])
cint([FIELD1]) + cint([FIELD2])
parseInt([FIELD1]) + parseInt([FIELD2])
Pasos:
- Haga clic en el botón Administrador de etiquetas en la barra de herramientas Etiquetado.
- Haga clic en una clase de etiqueta en la lista Clases de etiquetas.
- Haga clic en el botón Expresión.
- Elija un lenguaje en el menú Analizador.
- Escriba una expresión Python, JScript o VBScript. También puede crear una expresión haciendo doble clic en el campo para agregarlo a la expresión o seleccionando el campo y haciendo clic en el botón Incorporar para incorporar el campo al final de la expresión separado por un espacio.
Los campos están encerrados entre corchetes [], sin importar el tipo de datos de la fuente de datos de la capa.
Opcionalmente, escriba etiquetas de formato de texto de ArcGIS en el cuadro Expresión para aplicar formato a una parte del texto de la etiqueta.
Si la expresión va a abarcar varias líneas de código, marque la casilla de verificación Avanzada y escriba la expresión de la etiqueta.
- Haga clic en Verificar para asegurarse de que no hay errores de sintaxis.
- Haga clic en Aceptar en cada uno de los cuadros de diálogo.
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:Python
"Parcel no: " + [PARCELNO]
VBScript"Parcel no: " & [PARCELNO]
JScript"Parcel no: " + [PARCELNO]
- Redondear un número decimal a un número fijo de decimales. Esta expresión muestra un campo de área redondeado a una sola posición decimal:Python
round(float([AREA]), 1)
VBScriptRound ([AREA], 1)
JScriptfunction FindLabel ( [AREA] ) { var ss; var num= parseFloat([AREA]); ss = num.toFixed(1); return (ss); }
- Convertir las etiquetas de texto a todo mayúsculas o todo minúsculas. Esta expresión hace que un campo Nombre esté todo en minúsculas:Python
def FindLabel ( [NAME] ): S = [NAME] S = S.lower() return S
VBScriptLCase ([NAME])
JScript[NAME].toLowerCase()
- Convertir las etiquetas de texto a las mayúsculas o minúsculas correctas. Esta expresión toma un campo Nombre que está todo en mayúsculas y lo escribe en mayúsculas o minúsculas correctamente:Python
def FindLabel ( [NAME] ): S = [NAME] S = S.title() return S
VBScriptFunction FindLabel ( [NAME] ) FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1)) End Function
JScriptfunction 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. Esta expresión crea una etiqueta con el campo Nombre y los dos campos de dirección, todos en líneas separadas: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. Esta expresión utiliza la coma para especificar donde tiene lugar la pila:Python
def FindLabel ( [LABELFIELD] ): S = [LABELFIELD] S = S.replace(', ', '\n') return S
VBScriptFunction FindLabel ( [LABELFIELD] ) FindLabel = replace([LABELFIELD], ", ", vbnewline) End Function
JScriptfunction FindLabel ( [LABELFIELD] ) { var r, re; var str = [LABELFIELD]; re = /,/g; r = str.replace(re, "\r"); return r; }
- Dar formato a las etiquetas. Por ejemplo, esta expresión muestra la etiqueta como moneda: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])
JScriptfunction 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); }
- 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:Python
def FindLabel ( [NAME], [POPULATION] ): if long([POPULATION]) >= 250000: return "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else: return [NAME]
VBScriptFunction 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
JScriptfunction FindLabel ( [NAME], [POPULATION] ) { if (parseFloat([POPULATION]) >= 250000){ return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"); } else return ([NAME]); }
- Referencia del lenguaje Python
- Referencia del lenguaje VBScript de Microsoft
- Referencia del lenguaje JScript de Microsoft
(Esta 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).