AirQualityIndex

代表不同空氣品質指標的基本物件。同時儲存在上述指標中,就能提供目前空氣品質狀況的數據匯報。世界上有多種指數,分別適用於不同用途,想衡量空氣品質的不同面向。

JSON 表示法
{
  "code": string,
  "displayName": string,
  "aqiDisplay": string,
  "color": {
    object (Color)
  },
  "category": string,
  "dominantPollutant": string,
  "aqi": integer
}
欄位
code

string

索引的程式碼。這個欄位使用蛇的大小寫 (而非空格) 代表用於程式設計的索引。例如:「uaqi」、「fra_atmo」。

displayName

string

容易理解的索引名稱表示法。例如:「AQI (美國)」

aqiDisplay

string

索引數值分數的文字表示法,可能包含前置字元或後置符號,通常代表最差的索引分數。範例:>100 或 10+。

注意: 顯示索引分數時,您必須使用此欄位。如為非數字索引,這個欄位會空白。

color

object (Color)

用來代表 AQI 數值分數的顏色。

category

string

索引數值分數解釋的文字分類。例如:「空氣品質極佳」。

dominantPollutant

string

主要污染物的化學符號。例如:「CO」。

aqi

integer

索引的分數。範例:10、100。

這個值不會正規化,因此只能根據相關的空氣品質指數解讀。如為非數字索引,則不會傳回此欄位。

注意:這個欄位應用於計算、圖表顯示等。如要顯示索引分數,請使用 AQI 顯示欄位。

顏色

代表 RGBA 色域中的顏色。這種呈現方式旨在簡化將各種語言轉換的色彩與精簡內容相得益彰。舉例來說,這個表示法的欄位可以簡單提供給 Java 中的 java.awt.Color 建構函式,也可以短暫提供給 UIColor 的 +colorWithRed:green:blue:alpha 方法 (在 iOS 中);而且只要簡單幾個步驟,就能在 JavaScript 中輕鬆地格式化為 CSS rgba() 字串。

這個參考頁面沒有應用於解讀 RGB 值的絕對色彩空間資訊,例如 sRGB、Adobe RGB、DCI-P3 和 BT.2020。根據預設,應用程式應假設 sRGB 色域。

需要決定顏色等式時,除非另有說明,否則導入時將兩色都相等,當其所有紅色、綠色、藍色和 Alpha 值都相差最多 1e-5 時,會視為相等。

範例 (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();
 }
 // ...

範例 (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;
}
// ...

範例 (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('');
};

// ...
JSON 表示法
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
欄位
red

number

以顏色表示的紅色量,範圍為 [0, 1]。

green

number

以 [0, 1] 區間表示值的綠色量。

blue

number

以 [0, 1] 區間表示值的藍色量。

alpha

number

這個色彩應套用至像素的比例。也就是說,最終的像素顏色是由以下方程式定義:

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

也就是說,1.0 值會對應純色,值為 0.0 則對應完全透明的顏色。這會使用包裝函式訊息,而不是簡單的浮點純量,以便區分預設值和不設定的值。如果省略,則此顏色物件會以純色 (如同 Alpha 值已明確指定為 1.0 的情況) 呈現。