Señales de aeropuertos

Las etiquetas de señales de aeropuertos se pueden formatear con la etiqueta de formato Background. Esta etiqueta proporciona flexibilidad exclusiva para modificar el aspecto de los fondos del texto de señales de aeropuertos.

La siguiente imagen muestra una señal de aeropuerto formada por dos fondos distintos, uno con contorno y otro sin él.

Señal de aeropuerto creada con etiquetas de formato

Para crear etiquetas de señales de aeropuertos, siga estos pasos:

  1. Asegúrese de que las etiquetas están habilitadas para la capa.
  2. Utilice la fuente predeterminada, Tahoma Regular. Cambie el tamaño de la etiqueta a 24 puntos.
  3. Utilice etiquetas de formato para crear un fondo para la etiqueta.
    • Una expresión de etiqueta de ejemplo sencilla para colocar las etiquetas de formato alrededor del texto. La etiqueta es A2 26-8.

      "<CLR red='255' green='236' blue='0' alpha='100'><BGD red='0' green='0' blue='0' alpha='100' outline_red='255' outline_green='236' outline_blue='0' outline_alpha='100' width='1' padding='-2'>" + "A2 " + "</BGD></CLR><CLR red='255' green='255' blue='255' alpha='100'><BGD red='230' green='0' blue='0' alpha='100'>" + " 26-8" + "</BGD></CLR>"

    • Una expresión de etiqueta de ejemplo más compleja que contiene lógica para extraer la etiqueta de un campo de los datos y determinar los colores de fondo y contorno de dicha información.

      La expresión se basa en los datos que se están formateando siguiendo los ejemplos que aparecen a continuación. El número entre corchetes ([ ]) especifica el formato utilizado para el texto. Un valor de [3] equivale a texto amarillo sobre fondo negro.

      • [4]9-27[3]B10
      • [7]5
      • [12]
      • [4]9-27[3]B4[0]56
      • [0]←B4

      Expresión de etiqueta de Arcade
      var yellow = [255,236,0,100]
      var red    = [230,0,0,100]
      var blue   = [0,180,230,100]
      var black  = [0,0,0,100]
      var white  = [255,255,255,100]
      var none   = [0,0,0,0]
      var textFontName = "Frutiger";
      var textFontStyle = "65 Bold";
      var signFontName = "Esri Airport Sign"
      var signFontStyle = ""
      function FormatBO(background, outline, width, padding, txt){
        var attr = ""
        if(background != none && count(background) == 4){
         attr += " red='"   + background[0] + "'"
          attr += " green='" + background[1] + "'"
          attr += " blue='"  + background[2] + "'"
          attr += " alpha='" + background[3] + "'"
        }
        if(outline != none && count(outline) == 4){
          attr += " outline_red='"    + outline[0] + "'"
          attr += " outline_green='"  + outline[1] + "'"
          attr += " outline_blue='"   + outline[2] + "'"
          attr += " outline_alpha='"  + outline[3] + "'"
          attr += " width='" + width + "'"
          attr += " padding='" + padding + "'"
        }
        return "<BGD" + attr + ">" + txt + "</BGD>"
      }
      function SetTextColor(rgba, txt)
      {
        var r = rgba[0]
        var g = rgba[1]
        var b = rgba[2]
        var a = rgba[3]
        return "<CLR red='" + r + "' green='" + g + "' blue='" + b + "' alpha='" + a + "'>" + txt + "</CLR>"; 
      }
      function FormatFont(label, name, style, size)
      {
        var tagName = iif(name=="", "", " NAME='"+name+"'")
        var tagStyle = iif(style=="", "", " STYLE='"+style+"'")
        var tagSize = iif(size==0, "", " SIZE='"+size+"'")
        return "<FNT" + tagName + tagStyle + tagSize + ">" + label + "</FNT>"
      }
      var testExpr = $feature.AIRPORTSIGNMSGFRONT
      // e.g. "[0]←D[3]F"
      var splitExpr = Split(testExpr,"[")
      // e.g. ["", "0]←D ", "3]F"]
      var typeTextPairArray = [["",""]]
      for (var index in splitExpr){
        var pair = Split(splitExpr[index],"]")
        typeTextPairArray[index] = pair
      } 
      // e.g. [[""], ["0","←D"], ["3","F"]]
      var expression = "";
      var indices = [0]
      for (var index in typeTextPairArray){
        indices[index] = index;
        var pairCount = count(typeTextPairArray[index])
        if(pairCount != 2){
          expression += iif(pairCount >= 1, typeTextPairArray[index][0], "")
          continue;
        }
        
        var type = number(typeTextPairArray[index][0])
        var newText = typeTextPairArray[index][1]
        if(type == 0) // "DIRECTION")
          expression += SetTextColor(black, FormatBO(yellow, none, 0, 0, newText));
        else if(type == 1) // "INFO_ACFT")
          expression += SetTextColor(black, FormatBO(yellow, none, 0, 0, FormatFont(newText, textFontName, textFontStyle, 0)));
        else if(type == 2) //"INFO_VEH")
          expression += SetTextColor(black, FormatBO(yellow, none, 0, 0, FormatFont(newText, textFontName, textFontStyle, 5)));
        else if(type == 3) // "LOCATION")
          expression += SetTextColor(yellow, FormatBO(black, yellow, 1, -2, FormatFont(" " + newText + " ", textFontName, textFontStyle, 0)));
        else if(type == 4) // "MANDATORY")
          expression += SetTextColor(white, FormatBO(red, none, 0, 0, FormatFont(newText, textFontName, textFontStyle, 0)));
        else if(type == 5) // "NO_ENTRY")
          expression += SetTextColor(red, FormatBO(white, none, 0, 0, FormatFont("O", signFontName, "", 16)));
        else if(type == 6) // "RWY_CRITICAL")
          expression += SetTextColor(black, FormatBO(yellow, none, 0, 0, FormatFont("IIIII", signFontName, "", 0)));
        else if(type == 7) // "RWY_DIST_REMAIN")
          expression += SetTextColor(white, FormatBO(black, none, 0, 0, FormatFont(newText, textFontName, textFontStyle, 0)));
        else if(type == 8) //"RWY_SAFETY")
          expression += SetTextColor(black, FormatBO(yellow, none, 0, 0, FormatFont("RRRRR", signFontName, "", 0)));
        else if(type == 9) //"TAXIWAY_END")
          expression += SetTextColor(black, FormatBO(yellow, none, 0, 0, FormatFont("TTT", signFontName, "", 0)));
        else if(type == 10) //"TERMINAL")
          expression += SetTextColor(white, FormatBO(blue, none, 0, 0, FormatFont(newText, textFontName, textFontStyle, 0)));
        else if(type == 11) //"VEH_STOP")
          expression += SetTextColor(red, FormatBO(white, none, 0, 0, FormatFont("S", signFontName, "", 16)));
        else if(type == 12) //"VEH_YIELD")
          expression += SetTextColor(red, FormatBO(white, none, 0, 0, FormatFont("Y", signFontName, "", 16)));
        else
          expression += newText
      }
      return expression
  4. Defina los márgenes de Rótulo de fondo.
    1. En la pestaña Etiquetado, en el grupo Ubicación de etiqueta, haga clic en Propiedades de la ubicación de etiquetas Selector.
    2. En el panel Etiquetado, haga clic en Símbolo y haga clic en General.
    3. Expanda Llamada.
    4. Haga clic en el menú desplegable de Llamada y seleccione Fondo.
    5. Defina los márgenes de este modo:
      • Margen izquierdo: 10 pt
      • Margen derecho: 10 pt
      • Margen superior: 5 pt
      • Margen inferior: 5 pt

Temas relacionados