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 的构造函数;在 iOS 中,也可以平常地将其提供给 UIColor 的 +colorWithRed:green:blue:alpha 方法;而且只需稍作调整,就能在 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 一样)。