ออบเจ็กต์พื้นฐานสำหรับการแสดงเมตริกคุณภาพอากาศแบบต่างๆ เมื่อนำมารวมกัน เมตริกเหล่านี้จะให้ภาพรวมเกี่ยวกับสภาพอากาศปัจจุบัน โลกมีดัชนีหลายแห่งสำหรับวัตถุประสงค์และกลุ่มต่างๆ ที่สนใจในการวัดคุณภาพอากาศในแง่มุมที่แตกต่างกัน
| การแสดง JSON | 
|---|
| {
  "code": string,
  "displayName": string,
  "aqiDisplay": string,
  "color": {
    object ( | 
| ช่อง | |
|---|---|
| code | 
 โค้ดของดัชนี ฟิลด์นี้แสดงดัชนีสำหรับวัตถุประสงค์การเขียนโปรแกรม โดยใช้อักขระงูแทนการเว้นวรรค เช่น "uaqi", "fra_atmo" | 
| displayName | 
 การแสดงชื่อดัชนีที่มนุษย์อ่านได้ ตัวอย่างเช่น "AQI (สหรัฐอเมริกา)" | 
| aqiDisplay | 
 ข้อความแสดงคะแนนตัวเลขดัชนี ซึ่งอาจมีสัญลักษณ์นำหน้าหรือต่อท้าย ซึ่งมักหมายถึงคะแนนดัชนีที่แย่ที่สุด เช่น >100 หรือ 10+ หมายเหตุ: ควรใช้ช่องนี้เมื่อคุณต้องการแสดงคะแนนดัชนี สำหรับดัชนีที่ไม่ใช่ตัวเลข ฟิลด์นี้จะว่างเปล่า | 
| color | 
 สีที่ใช้แสดงคะแนนตัวเลข AQI | 
| category | 
 การจัดประเภทข้อความของการแปลงตัวเลขคะแนนของดัชนี เช่น "คุณภาพอากาศดีเยี่ยม" | 
| dominantPollutant | 
 สัญลักษณ์ทางเคมีของสารมลพิษหลัก เช่น "CO" | 
| aqi | 
 คะแนนที่เป็นตัวเลขของดัชนี เช่น 10, 100 ค่าดังกล่าวไม่ได้เป็นมาตรฐานและควรตีความในบริบทของดัชนีคุณภาพอากาศที่เกี่ยวข้องเท่านั้น สำหรับดัชนีที่ไม่ใช่ตัวเลข ช่องนี้จะไม่แสดง หมายเหตุ: ช่องนี้ควรใช้เพื่อการคำนวณ การแสดงกราฟ ฯลฯ สำหรับการแสดงคะแนนดัชนี คุณควรใช้ช่องการแสดงผล AQI | 
สี
แสดงสีในพื้นที่สี RGBA การนำเสนอนี้ออกแบบมาให้ง่ายต่อการแปลงเป็นและจากการแสดงสีในภาษาต่างๆ ที่กระชับได้ใจความ ตัวอย่างเช่น ช่องของการนำเสนอนี้สามารถใส่เล็กน้อยให้กับเครื่องมือสร้าง java.awt.Color ใน Java สามารถระบุเมธอด +colorWithRed:green:blue:alpha ของ UIColor ใน iOS ได้เพียงเล็กน้อย เพียงทำเล็กน้อยเท่านั้น คุณก็สามารถจัดรูปแบบเป็นสตริง CSS rgba() ใน JavaScript ได้อย่างง่ายดาย
หน้าอ้างอิงนี้ไม่มีข้อมูลเกี่ยวกับพื้นที่สีสัมบูรณ์ที่ควรใช้ในการตีความค่า RGB เช่น sRGB, Adobe RGB, DCI-P3 และ BT.2020 โดยค่าเริ่มต้น แอปพลิเคชันควรใช้พื้นที่สี sRGB
เมื่อต้องตัดสินใจเลือกความเท่าเทียมกันของสี การติดตั้งใช้งานจะถือว่าสี 2 สีเท่ากัน เว้นแต่จะระบุไว้เป็นอย่างอื่น โดยค่าสีแดง เขียว น้ำเงิน และอัลฟ่าทั้งหมดต่างกันไม่เกิน 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 | 
 ปริมาณสีแดงของสีเป็นค่าในช่วง [0, 1] | 
| green | 
 ปริมาณสีเขียวของสีเป็นค่าในช่วง [0, 1] | 
| blue | 
 ปริมาณของสีน้ำเงินเป็นค่าในช่วง [0, 1] | 
| alpha | 
 เศษส่วนของสีนี้ที่ควรใช้กับพิกเซล กล่าวคือ สีของพิกเซลสุดท้ายจะกำหนดโดยสมการต่อไปนี้ 
 หมายความว่าค่า 1.0 จะเท่ากับสีทึบ ในขณะที่ค่า 0.0 คือสีที่โปร่งใสทั้งหมด การดำเนินการนี้จะใช้ข้อความ Wrapper แทนสเกลาร์ Float แบบง่ายเพื่อให้แยกความแตกต่างระหว่างค่าเริ่มต้นกับค่าที่ไม่ได้ตั้งค่าได้ หากละเว้น วัตถุสีนี้จะแสดงเป็นสีทึบ (เสมือนว่าค่าอัลฟ่าได้รับค่าเป็น 1.0 อย่างชัดเจน) |