AirQualityIndex

Farklı hava kalitesi metriklerini temsil eden temel nesne. Bu metrikler bir araya getirildiğinde mevcut hava kalitesi koşulları hakkında bir anlık görüntü sağlar. Dünyada farklı amaçlar için hizmet veren birçok indeks ve hava kalitesinin farklı yönlerini ölçmek isteyen gruplar vardır.

JSON gösterimi
{
  "code": string,
  "displayName": string,
  "aqiDisplay": string,
  "color": {
    object (Color)
  },
  "category": string,
  "dominantPollutant": string,
  "aqi": integer
}
Alanlar
code

string

Dizinin kodu. Bu alan, programlama amacıyla dizini boşluk yerine yılan büyük/küçük harf kullanarak gösterir. Örnekler: "uaqi", "fra_atmo".

displayName

string

Dizin adının kullanıcılar tarafından okunabilen temsili. Örnek: "HKİ (ABD)"

aqiDisplay

string

Genellikle en kötü dizin puanını temsil eden ön ek veya sonek simgeleri içerebilen, dizin sayısal puanının metinsel gösterimi. Örnek: >100 veya 10+.

Not: Dizin puanını görüntülemek istediğinizde bu alan kullanılmalıdır. Sayısal olmayan dizinler için bu alan boştur.

color

object (Color)

HKİ sayısal puanını temsil etmek için kullanılan renk.

category

string

Dizin sayısal puan yorumunun metin sınıflandırması. Örneğin: "Mükemmel hava kalitesi".

dominantPollutant

string

Kirliliğe yol açan baskın maddenin kimyasal simgesi. Örneğin: "CO".

aqi

integer

Dizinin sayısal puanı. Örnekler: 10, 100.

Değer normalleştirilmez ve yalnızca ilgili hava kalitesi indeksi bağlamında yorumlanmalıdır. Sayısal olmayan dizinler için bu alan döndürülmez.

Not: Bu alan hesaplamalar, grafik görüntüleme vb. için kullanılmalıdır. Dizin puanını göstermek için HKİ görüntüleme alanını kullanmanız gerekir.

Renk

RGBA renk alanındaki bir rengi temsil eder. Bu sunum, kompaktlık yerine, çeşitli dillerdeki renk gösterimlerine ve bu gösterimlerden dönüştürmenin basitleştirilmesi için tasarlanmıştır. Örneğin, bu temsilin alanları, Java'da java.awt.Color oluşturucuya standart bir şekilde sağlanabilir; Ayrıca, iOS'te UIColor'ın +colorWithRed:green:blue:alpha yöntemine de sağlanabilir; ve küçük bir çalışmayla, JavaScript'te bir CSS rgba() dizesi olarak kolayca biçimlendirilebilir.

Bu referans sayfasında, RGB değerini yorumlamak için kullanılması gereken mutlak renk alanıyla ilgili bilgiler (ör. sRGB, Adobe RGB, DCI-P3 ve BT.2020) yer almaz. Varsayılan olarak uygulamalar sRGB renk alanını kabul etmelidir.

Renk eşitliğinin belirlenmesi gerektiğinde, aksi belirtilmediği sürece uygulamalarda iki rengin tamamının kırmızı, yeşil, mavi ve alfa değerlerinin her biri en fazla 1e-5 farklılık gösterdiği takdirde eşit kabul edilir.

Örnek (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();
 }
 // ...

Örnek (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;
}
// ...

Örnek (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 gösterimi
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
Alanlar
red

number

[0, 1] aralığındaki bir değer olarak renkteki kırmızı miktarı.

green

number

[0, 1] aralığındaki bir değer olarak renkteki yeşilin miktarı.

blue

number

[0, 1] aralığındaki bir değer olarak renkteki mavi miktarı.

alpha

number

Bu rengin piksele uygulanması gereken oranı. Yani son piksel rengi denklemle tanımlanır:

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

Bu, 1,0 değeri düz bir renge karşılık gelirken, 0.0 değeri tamamen şeffaf bir renge karşılık gelir. Bu yöntem, varsayılan değer ile ayarlanmayan değeri birbirinden ayırt edebilmek için basit bir kayan skaler yerine bir sarmalayıcı mesajı kullanır. Atlanırsa bu renk nesnesi düz renk olarak oluşturulur (alfa değerine açık bir şekilde 1, 0 değeri verilmiş gibi).