- HTTP 请求
- 查询参数
- 请求正文
- 响应正文
- 授权范围
- LatLng
- DayInfo
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表示法
- Date
- PollenTypeInfo
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表示法
- PollenType
- IndexInfo
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表示法
- 索引
- 颜色
- PlantInfo
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表示法
- 植物
- PlantDescription
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表示法
- 试试看!
可返回超过 65 个国家/地区每天 5 天的花粉信息,分辨率最高可达 1 公里。
HTTP 请求
GET https://pollen.googleapis.com/v1/forecast:lookup
网址采用 gRPC 转码语法。
查询参数
参数 | |
---|---|
location |
必需。API 搜索花粉预测数据的经度和纬度。 |
days |
必需。一个数字,表示需要请求的预测天数(最小值为 1,最大值为 5)。 |
pageSize |
可选。每页返回的每日信息记录数量上限。默认值和最大值均为 5,表示 5 天的数据。 |
pageToken |
可选。从上一次每日调用收到的页面令牌。它用于检索后续页面。 请注意,为页面令牌提供值时,提供的所有其他请求参数必须与提供页面令牌的上一个调用相匹配。 |
languageCode |
可选。允许客户端选择响应的语言。如果无法为该语言提供数据,API 会使用最接近的匹配项。允许的值取决于 IETF BCP-47 标准。默认值为“en”。 |
plantsDescription |
可选。包含有关植物的一般信息,包括其季节性变化、特殊形状和颜色的详细信息、有关过敏交叉反应的信息以及植物照片。默认值为“true”。 |
请求正文
请求正文必须为空。
响应正文
如果成功,响应正文将包含结构如下的数据:
JSON 表示法 |
---|
{
"regionCode": string,
"dailyInfo": [
{
object ( |
字段 | |
---|---|
regionCode |
与请求中提供的位置相对应的国家/地区的 ISO_3166-1 alpha-2 代码。如果要求中提供的地点位于有争议的地区,响应中可能会省略此字段。 |
dailyInfo[] |
必需。此对象包含所请求的每一天的每日天气预报信息。 |
nextPageToken |
可选。用于检索下一页的令牌。 |
授权范围
需要以下 OAuth 范围:
https://www.googleapis.com/auth/cloud-platform
如需了解详情,请参阅 OAuth 2.0 概览。
LatLng
表示纬度/经度对的对象。该对象以一对双精度数表示,分别代表纬度度数和经度度数。除非另有说明,否则该对象必须符合 WGS84 标准。值必须介于标准化范围内。
JSON 表示法 |
---|
{ "latitude": number, "longitude": number } |
字段 | |
---|---|
latitude |
纬度(以度为单位)。它必须在 [-90.0, +90.0] 范围内。 |
longitude |
经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。 |
DayInfo
此对象包含所请求的每一天的每日天气预报信息。
JSON 表示法 |
---|
{ "date": { object ( |
字段 | |
---|---|
date |
表示花粉预测数据的日期(采用世界协调时间)。 |
pollenTypeInfo[] |
此列表将包含最多 3 种会影响请求中指定的位置的花粉类型(GRASS、WEED、TREE)。 |
plantInfo[] |
此列表最多将包含影响要求中指定的位置的花粉种类(最多 15 个)。 |
日期
表示整个或部分日历日期(例如生日)。一天中的时间和时区要么在别处指定,要么不重要。日期相对于公历。可以表示以下任一情况:
- 包含非零年份、月份和天值的完整日期。
- 月份和天,年份值为零(例如周年纪念日)。
- 单独的年份,月份和天值为零。
- 年份和月份,天值为零(例如,信用卡到期日期)。
相关类型:
google.type.TimeOfDay
google.type.DateTime
google.protobuf.Timestamp
JSON 表示法 |
---|
{ "year": integer, "month": integer, "day": integer } |
字段 | |
---|---|
year |
日期中的年份。必须介于 1 到 9999 之间,或为 0(即指定不含年份的日期)。 |
month |
一年中的第几个月。必须介于 1 到 12 之间,或为 0(即只指定年份,不指定月份和天值)。 |
day |
一个月中的第几天。必须介于 1 到 31 之间并且对年份和月份有效,或为 0(即天不重要,指定单独的年份或者年份和月份)。 |
PollenTypeInfo
此对象包含特定花粉类型的花粉类型索引和健康建议信息。
JSON 表示法 |
---|
{ "code": enum ( |
字段 | |
---|---|
code |
花粉类型的代号。例如:“GRASS” |
displayName |
花粉类型名称的人类可读表示法。示例:“草” |
indexInfo |
包含花粉类型的通用花粉指数 (UPI) 数据。 |
healthRecommendations[] |
与基于当前花粉含量的健康数据分析相关的说明文本列表。 |
inSeason |
指示植物是否季节。 |
PollenType
花粉类型代码
枚举 | |
---|---|
POLLEN_TYPE_UNSPECIFIED |
未指定的植物类型。 |
GRASS |
草花粉类型。 |
TREE |
树花粉类型。 |
WEED |
杂草花粉类型。 |
IndexInfo
此对象包含表示特定花粉指数值、类别和说明的数据。
JSON 表示法 |
---|
{ "code": enum ( |
字段 | |
---|---|
code |
索引的代码。此字段表示用于编程目的的索引(使用蛇形命名法而不是空格)。例如:“UPI”。 |
displayName |
直观易懂的索引名称表示法。例如:“通用花粉指数”。 |
category |
索引数字得分解释的文本分类。该索引包含六个类别:
|
indexDescription |
当前索引级别的文字说明。 |
color |
用于表示花粉指数数字得分的颜色。 |
value |
索引的分值。数字范围在 0 到 5 之间。 |
索引
索引代码
枚举 | |
---|---|
INDEX_UNSPECIFIED |
未指定索引。 |
UPI |
通用花粉指数。 |
颜色
表示 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 |
颜色中红色的量,以区间 [0, 1] 中的值表示。 |
green |
颜色中绿色的量,以区间 [0, 1] 中的值表示。 |
blue |
颜色中的蓝色量,以 [0, 1] 区间中的值表示。 |
alpha |
此颜色在像素中的应用比例。也就是说,最终像素颜色由以下等式定义:
也就是说,值为 1.0 表示纯色,而值为 0.0 表示完全透明的颜色。它会使用封装容器消息,而非简单的浮动标量,以便区分默认值和未设置的值。如果省略,此颜色对象会渲染为纯色(就好像已经将 Alpha 值明确指定为 1.0)。 |
PlantInfo
此对象包含特定植物的每日信息。
JSON 表示法 |
---|
{ "code": enum ( |
字段 | |
---|---|
code |
植物代号。例如:“COTTONWOOD”。您可以在此处找到所有可用代码的列表。 |
displayName |
人类可读的植物名称表示形式。示例:“棉白木”。 |
indexInfo |
此对象包含表示特定花粉指数值、类别和说明的数据。 |
plantDescription |
包含有关植物的一般信息,包括其季节性变化、特殊形状和颜色的详细信息、有关过敏交叉反应的信息以及植物照片。 |
inSeason |
表明植物是否生长。 |
植物
列出各地点供应情况不同的可用植物。
枚举 | |
---|---|
PLANT_UNSPECIFIED |
未指定的植物代码。 |
ALDER |
桤木属于树类花粉类型。 |
ASH |
白蜡树属于树类花粉类型。 |
BIRCH |
桦树是一种树花粉类型。 |
COTTONWOOD |
棉白杨属于树类花粉类型。 |
ELM |
榆树属于树类花粉类型。 |
MAPLE |
枫树属于树类花粉类型。 |
OLIVE |
橄榄属于树类花粉类型。 |
JUNIPER |
杜松属于树木花粉类型。 |
OAK |
橡树属于树花粉类型。 |
PINE |
松树属于树花粉类型。 |
CYPRESS_PINE |
柏松属于树类花粉类型。 |
HAZEL |
榛树属于树类花粉类型。 |
GRAMINALES |
草本植物属于草类花粉类型。 |
RAGWEED |
豚草属于杂草花粉类型。 |
MUGWORT |
艾蒿属于杂草花粉类型。 |
PlantDescription
包含有关植物的一般信息,包括其季节性变化、特殊形状和颜色的详细信息、有关过敏交叉反应的信息以及植物照片。
JSON 表示法 |
---|
{
"type": enum ( |
字段 | |
---|---|
type |
植物的花粉类型。例如:“GRASS”。您可以在此处找到所有可用代码的列表。 |
family |
植物系列名称的人类可读表示形式。示例:“白杨菜科(桦树科)”。 |
season |
对有花粉的季节的说明文字列表。例如:“冬末、春季”。 |
specialColors |
植物的文字说明叶子、树皮、花朵或种子的颜色,有助于识别植物。 |
specialShapes |
植物的文字说明叶子、树皮、花朵或种子的形状,以帮助识别植物。 |
crossReaction |
花粉交叉反应植物的文字说明。示例:桤木、榛树、鹅耳枥、山毛榉、柳树和橡树花粉。 |
picture |
指向植物图片的链接。 |
pictureCloseup |
指向植物特写照片的链接。 |