다양한 공기질 측정항목을 나타내는 기본 객체입니다. 이러한 측정항목을 종합하면 현재 공기질 상태에 대한 개요를 제공합니다. 전 세계에는 공기질의 다양한 측면을 측정하는 데 관심이 있는 다양한 목적과 그룹을 제공하는 여러 지수가 있습니다.
JSON 표현 |
---|
{
"code": string,
"displayName": string,
"aqiDisplay": string,
"color": {
object ( |
필드 | |
---|---|
code |
색인의 코드입니다. 이 필드는 공백 대신 스네이크 표기법을 사용하여 프로그래밍 목적의 색인을 나타냅니다. 예: 'uaqi', 'fra_atmo'. |
displayName |
사람이 읽을 수 있는 색인 이름 표현입니다. 예: 'AQI (US)' |
aqiDisplay |
색인 숫자 점수의 텍스트 표현으로, 일반적으로 최악의 색인 점수를 나타내는 접두사 또는 접미사 기호를 포함할 수 있습니다. 예: >100 또는 10+ 참고: 이 필드는 색인 점수를 표시할 때 사용해야 합니다. 숫자가 아닌 색인의 경우 이 필드는 비어 있습니다. |
color |
AQI 숫자 점수를 나타내는 데 사용되는 색상입니다. |
category |
색인 숫자 점수 해석의 텍스트 분류입니다. 예: '공기질 매우 좋음' |
dominantPollutant |
주요 오염 물질의 화학 기호입니다. 예: 'CO' |
aqi |
색인의 숫자 점수입니다. 예: 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 색공간을 가정해야 합니다.
색상 동등성을 결정해야 하는 경우 달리 문서화되지 않는 한 구현에서는 모든 빨간색, 녹색, 파란색, 알파 값이 각각 최대 1e-5
만큼 차이가 나는 경우 두 색상을 동일한 것으로 취급합니다.
예시(자바):
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;
}
// ...
예시(자바스크립트):
// ...
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 값은 완전히 투명한 색상에 해당합니다. 이 옵션은 단순한 부동 소수점 스칼라 대신 래퍼 메시지를 사용하므로 기본값과 설정되지 않은 값을 구분할 수 있습니다. 생략하면 이 색상 객체가 단색으로 렌더링됩니다 (알파 값에 1.0 값이 명시적으로 지정된 것처럼). |