AirQualityIndex

L'oggetto di base per la rappresentazione delle diverse metriche sulla qualità dell'aria. Combinate, queste metriche forniscono un'istantanea delle attuali condizioni di qualità dell'aria. Al mondo esistono vari indici che hanno scopi e gruppi diversi interessati a misurare aspetti diversi della qualità dell'aria.

Rappresentazione JSON
{
  "code": string,
  "displayName": string,
  "aqiDisplay": string,
  "color": {
    object (Color)
  },
  "category": string,
  "dominantPollutant": string,
  "aqi": integer
}
Campi
code

string

Il codice dell'indice. Questo campo rappresenta l'indice ai fini della programmazione utilizzando lettere maiuscole al posto degli spazi. Esempi: "uaqi", "fra_atmo".

displayName

string

Una rappresentazione leggibile del nome dell'indice. Esempio: "IQA (US)"

aqiDisplay

string

Rappresentazione testuale del punteggio numerico dell'indice, che può includere simboli di prefisso o suffisso, che di solito rappresentano il punteggio peggiore dell'indice. Esempio: >100 o 10+.

Nota: questo campo deve essere utilizzato per visualizzare il punteggio indice. Per gli indici non numerici, questo campo è vuoto.

color

object (Color)

Il colore utilizzato per rappresentare il punteggio numerico dell'IQA.

category

string

Classificazione testuale dell'interpretazione del punteggio numerico dell'indice. Ad esempio: "Qualità dell'aria eccellente".

dominantPollutant

string

Il simbolo chimico dell'inquinante dominante. Ad esempio: "CO".

aqi

integer

Il punteggio numerico dell'indice. Esempi: 10, 100.

Il valore non è normalizzato e deve essere interpretato solo nel contesto del relativo indice di qualità dell'aria. Per gli indici non numerici, questo campo non verrà restituito.

Nota: questo campo deve essere utilizzato per calcoli, visualizzazione del grafico e così via. Per visualizzare il punteggio dell'indice, devi utilizzare il campo di visualizzazione dell'IQA.

Colore

Rappresenta un colore nello spazio colore RGBA. Questa rappresentazione è progettata per facilitare la conversione da e verso rappresentazioni a colori in vari linguaggi piuttosto che per la compattezza. Ad esempio, i campi di questa rappresentazione possono essere forniti banalmente al costruttore di java.awt.Color in Java; può anche essere fornito banalmente al metodo +colorWithRed:green:blue:alpha di UIColor in iOS; e, con un po' di lavoro, può essere facilmente formattata in una stringa rgba() CSS in JavaScript.

Questa pagina di riferimento non contiene informazioni sullo spazio colore assoluto che dovrebbe essere utilizzato per interpretare il valore RGB, ad esempio sRGB, Adobe RGB, DCI-P3 e BT.2020. Per impostazione predefinita, le applicazioni devono utilizzare lo spazio colore sRGB.

Quando è necessario decidere l'uguaglianza dei colori, le implementazioni, salvo diversa indicazione, tratta i due colori come uguali se tutti i rispettivi valori di rosso, verde, blu e alfa differiscono di un massimo di 1e-5.

Esempio (Java):

 import com.google.type.Color;

 // ...
 public static java.awt.Color fromProto(Color protocolor) {
   float alpha = protocolor.hasAlpha()
       ? protocolor.getAlpha().getValue()
       : 1.0;

   return new java.awt.Color(
       protocolor.getRed(),
       protocolor.getGreen(),
       protocolor.getBlue(),
       alpha);
 }

 public static Color toProto(java.awt.Color color) {
   float red = (float) color.getRed();
   float green = (float) color.getGreen();
   float blue = (float) color.getBlue();
   float denominator = 255.0;
   Color.Builder resultBuilder =
       Color
           .newBuilder()
           .setRed(red / denominator)
           .setGreen(green / denominator)
           .setBlue(blue / denominator);
   int alpha = color.getAlpha();
   if (alpha != 255) {
     result.setAlpha(
         FloatValue
             .newBuilder()
             .setValue(((float) alpha) / denominator)
             .build());
   }
   return resultBuilder.build();
 }
 // ...

Esempio (iOS / Obj-C):

 // ...
 static UIColor* fromProto(Color* protocolor) {
    float red = [protocolor red];
    float green = [protocolor green];
    float blue = [protocolor blue];
    FloatValue* alpha_wrapper = [protocolor alpha];
    float alpha = 1.0;
    if (alpha_wrapper != nil) {
      alpha = [alpha_wrapper value];
    }
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
 }

 static Color* toProto(UIColor* color) {
     CGFloat red, green, blue, alpha;
     if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
       return nil;
     }
     Color* result = [[Color alloc] init];
     [result setRed:red];
     [result setGreen:green];
     [result setBlue:blue];
     if (alpha <= 0.9999) {
       [result setAlpha:floatWrapperWithValue(alpha)];
     }
     [result autorelease];
     return result;
}
// ...

Esempio (JavaScript):

// ...

var protoToCssColor = function(rgb_color) {
   var redFrac = rgb_color.red || 0.0;
   var greenFrac = rgb_color.green || 0.0;
   var blueFrac = rgb_color.blue || 0.0;
   var red = Math.floor(redFrac * 255);
   var green = Math.floor(greenFrac * 255);
   var blue = Math.floor(blueFrac * 255);

   if (!('alpha' in rgb_color)) {
      return rgbToCssColor(red, green, blue);
   }

   var alphaFrac = rgb_color.alpha.value || 0.0;
   var rgbParams = [red, green, blue].join(',');
   return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};

var rgbToCssColor = function(red, green, blue) {
  var rgbNumber = new Number((red << 16) | (green << 8) | blue);
  var hexString = rgbNumber.toString(16);
  var missingZeros = 6 - hexString.length;
  var resultBuilder = ['#'];
  for (var i = 0; i < missingZeros; i++) {
     resultBuilder.push('0');
  }
  resultBuilder.push(hexString);
  return resultBuilder.join('');
};

// ...
Rappresentazione JSON
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
Campi
red

number

La quantità di rosso nel colore come valore nell'intervallo [0, 1].

green

number

La quantità di verde nel colore come valore nell'intervallo [0, 1].

blue

number

La quantità di blu nel colore come valore nell'intervallo [0, 1].

alpha

number

La frazione di questo colore che deve essere applicata al pixel. In altre parole, il colore finale dei pixel è definito dall'equazione:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

Ciò significa che un valore pari a 1,0 corrisponde a un colore in tinta unita, mentre un valore pari a 0,0 a un colore completamente trasparente. Viene utilizzato un messaggio wrapper anziché un semplice scalare in virgola mobile in modo che sia possibile distinguere tra un valore predefinito e il valore non impostato. Se omesso, l'oggetto colore viene visualizzato come colore a tinta unita (come se al valore alpha fosse stato assegnato esplicitamente un valore 1,0).