AirQualityIndex

Farklı hava kalitesi metriklerini temsil eden temel nesne. Bu metrikler bir araya getirildiğinde mevcut hava kalitesi koşullarına dair bir anlık görüntü sağlar. Dünyada farklı amaçlara hizmet eden 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 temsil eder. Bunun için boşluklar yerine yılan durumu kullanılır. Örnekler: "uaqi", "fra_atmo".

displayName

string

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

aqiDisplay

string

Dizin sayısal puanının, genellikle en kötü dizin puanını temsil eden önek ya da sonek sembollerini içerebilen 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ı göstermek için kullanılan renk.

category

string

Dizin sayısal puanı yorumlanmasının metinsel sınıflandırması. Örneğin: "Hava kalitesi mükemmel".

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örüntülemek için HKİ görüntüleme alanını kullanmalısınız.

Renk

RGBA renk alanındaki bir rengi temsil eder. Bu temsil, kompaktlık yerine çeşitli dillerdeki renk temsillerine geçişin basit olması için tasarlanmıştır. Örneğin, bu temsilin alanları Java'daki java.awt.Color oluşturucuya basit bir şekilde sağlanabilir; ayrıca iOS'teki UIColor'ın +colorWithRed:green:blue:alpha yöntemine önemsiz bir şekilde sağlanabilir ve sadece küçük bir çalışmayla JavaScript'te bir CSS rgba() dizesine kolayca dönüştürülebilir.

Bu referans sayfasında, RGB değerini yorumlamak için kullanılması gereken mutlak renk alanı hakkında bilgi yoktur (ör. sRGB, Adobe RGB, DCI-P3 ve BT.2020). Uygulamalarda varsayılan olarak sRGB renk alanı kullanılmalıdır.

Renk eşitliğinin belirlenmesi gerektiğinde, aksi belirtilmediği sürece tüm kırmızı, yeşil, mavi ve alfa değerleri arasında en fazla 1e-5 fark olması durumunda, uygulamalarda iki renk eşit olarak ele alınır.

Ö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şil miktarı.

blue

number

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

alpha

number

Bu rengin piksele uygulanması gereken oranı. Yani, nihai piksel rengi şu denklemle tanımlanır:

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

Bu, 1,0 değerinin düz bir renge, 0,0 değerinin ise tamamen şeffaf bir renge karşılık geldiği anlamına gelir. Bu yöntemde basit bir kayan skaler yerine sarmalayıcı mesajı kullanılır, böylece varsayılan değer ile ayarlanmamış olan değer birbirinden ayırt edilebilir. Atlanırsa, bu renk nesnesi düz renk olarak oluşturulur (alfa değerine açık bir şekilde 1,0 değeri verilmiş gibi).