Method: forecast.lookup

可返回超过 65 个国家/地区每天 5 天的花粉信息,分辨率最高可达 1 公里。

HTTP 请求

GET https://pollen.googleapis.com/v1/forecast:lookup

网址采用 gRPC 转码语法。

查询参数

参数
location

object (LatLng)

必需。API 搜索花粉预测数据的经度和纬度。

days

integer

必需。一个数字,表示需要请求的预测天数(最小值为 1,最大值为 5)。

pageSize

integer

可选。每页返回的每日信息记录数量上限。默认值和最大值均为 5,表示 5 天的数据。

pageToken

string

可选。从上一次每日调用收到的页面令牌。它用于检索后续页面。

请注意,为页面令牌提供值时,提供的所有其他请求参数必须与提供页面令牌的上一个调用相匹配。

languageCode

string

可选。允许客户端选择响应的语言。如果无法为该语言提供数据,API 会使用最接近的匹配项。允许的值遵循 IETF BCP-47 标准。默认值为“en”。

plantsDescription

boolean

可选。包含有关植物的一般信息,包括其季节性变化、特殊形状和颜色的详细信息、有关过敏交叉反应的信息以及植物照片。默认值为“true”。

请求正文

请求正文必须为空。

响应正文

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "regionCode": string,
  "dailyInfo": [
    {
      object (DayInfo)
    }
  ],
  "nextPageToken": string
}
字段
regionCode

string

与请求中提供的位置相对应的国家/地区的 ISO_3166-1 alpha-2 代码。如果要求中提供的地点位于有争议的地区,响应中可能会省略此字段。

dailyInfo[]

object (DayInfo)

必需。此对象包含所请求的每一天的每日天气预报信息。

nextPageToken

string

可选。用于检索下一页的令牌。

授权范围

需要以下 OAuth 范围:

  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅 OAuth 2.0 概览

LatLng

表示纬度/经度对的对象。该对象以一对双精度数表示,分别代表纬度度数和经度度数。除非另有说明,否则该对象必须符合 WGS84 标准。值必须介于标准化范围内。

JSON 表示法
{
  "latitude": number,
  "longitude": number
}
字段
latitude

number

纬度(以度为单位)。它必须在 [-90.0, +90.0] 范围内。

longitude

number

经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。

DayInfo

此对象包含所请求的每一天的每日天气预报信息。

JSON 表示法
{
  "date": {
    object (Date)
  },
  "pollenTypeInfo": [
    {
      object (PollenTypeInfo)
    }
  ],
  "plantInfo": [
    {
      object (PlantInfo)
    }
  ]
}
字段
date

object (Date)

表示花粉预测数据的日期(采用世界协调时间)。

pollenTypeInfo[]

object (PollenTypeInfo)

此列表将包含最多 3 种会影响请求中指定的位置的花粉类型(GRASS、WEED、TREE)。

plantInfo[]

object (PlantInfo)

此列表最多将包含影响要求中指定的位置的花粉种类(最多 15 个)。

日期

表示整个或部分日历日期(例如生日)。一天中的时间和时区要么在别处指定,要么不重要。日期相对于公历。可以表示以下任一情况:

  • 包含非零年份、月份和天值的完整日期。
  • 月份和天,年份值为零(例如周年纪念日)。
  • 单独的年份,月份和天值为零。
  • 年份和月份,天值为零(例如,信用卡到期日期)。

相关类型:

JSON 表示法
{
  "year": integer,
  "month": integer,
  "day": integer
}
字段
year

integer

日期中的年份。必须介于 1 到 9999 之间,或为 0(即指定不含年份的日期)。

month

integer

一年中的第几个月。必须介于 1 到 12 之间,或为 0(即只指定年份,不指定月份和天值)。

day

integer

一个月中的第几天。必须介于 1 到 31 之间并且对年份和月份有效,或为 0(即天不重要,指定单独的年份或者年份和月份)。

PollenTypeInfo

此对象包含特定花粉类型的花粉类型索引和健康建议信息。

JSON 表示法
{
  "code": enum (PollenType),
  "displayName": string,
  "indexInfo": {
    object (IndexInfo)
  },
  "healthRecommendations": [
    string
  ],
  "inSeason": boolean
}
字段
code

enum (PollenType)

花粉类型的代号。例如:“GRASS”

displayName

string

花粉类型名称的人类可读表示法。示例:“草”

indexInfo

object (IndexInfo)

包含花粉类型的通用花粉指数 (UPI) 数据。

healthRecommendations[]

string

与基于当前花粉含量的健康数据分析相关的说明文本列表。

inSeason

boolean

指示植物是否季节。

PollenType

花粉类型代码

枚举
POLLEN_TYPE_UNSPECIFIED 未指定的植物类型。
GRASS 草花粉类型。
TREE 树花粉类型。
WEED 杂草花粉类型。

IndexInfo

此对象包含表示特定花粉指数值、类别和说明的数据。

JSON 表示法
{
  "code": enum (Index),
  "displayName": string,
  "category": string,
  "indexDescription": string,
  "color": {
    object (Color)
  },
  "value": integer
}
字段
code

enum (Index)

索引的代码。此字段表示用于编程目的的索引(使用蛇形命名法而不是空格)。例如:“UPI”。

displayName

string

直观易懂的索引名称表示法。例如:“通用花粉指数”。

category

string

索引数字得分解释的文本分类。该索引包含六个类别:

  • 0:“无”
  • 1:“非常低”
  • 2:“不理想”
  • 3:“中等”
  • 4:“高”
  • 5:“非常高
indexDescription

string

当前索引级别的文字说明。

color

object (Color)

用于表示花粉指数数字得分的颜色。

value

integer

索引的分值。数字范围在 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

number

颜色中红色的量,以区间 [0, 1] 中的值表示。

green

number

颜色中绿色的量,以区间 [0, 1] 中的值表示。

blue

number

颜色中的蓝色量,以 [0, 1] 区间中的值表示。

alpha

number

此颜色在像素中的应用比例。也就是说,最终像素颜色由以下等式定义:

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

也就是说,值为 1.0 表示纯色,而值为 0.0 表示完全透明的颜色。它会使用封装容器消息,而非简单的浮动标量,以便区分默认值和未设置的值。如果省略,此颜色对象会渲染为纯色(就好像已经将 Alpha 值明确指定为 1.0)。

PlantInfo

此对象包含特定植物的每日信息。

JSON 表示法
{
  "code": enum (Plant),
  "displayName": string,
  "indexInfo": {
    object (IndexInfo)
  },
  "plantDescription": {
    object (PlantDescription)
  },
  "inSeason": boolean
}
字段
code

enum (Plant)

植物代号。例如:“COTTONWOOD”。您可以在此处找到所有可用代码的列表。

displayName

string

人类可读的植物名称表示形式。示例:“棉白木”。

indexInfo

object (IndexInfo)

此对象包含表示特定花粉指数值、类别和说明的数据。

plantDescription

object (PlantDescription)

包含有关植物的一般信息,包括其季节性变化、特殊形状和颜色的详细信息、有关过敏交叉反应的信息以及植物照片。

inSeason

boolean

表明植物是否生长。

植物

列出各地点供应情况不同的可用植物。

枚举
PLANT_UNSPECIFIED 未指定的植物代码。
ALDER 桤木属于树类花粉类型。
ASH 白蜡树属于树类花粉类型。
BIRCH 桦树是一种树花粉类型。
COTTONWOOD 棉白杨属于树类花粉类型。
ELM 榆树属于树类花粉类型。
MAPLE 枫树属于树类花粉类型。
OLIVE 橄榄属于树类花粉类型。
JUNIPER 杜松属于树木花粉类型。
OAK 橡树属于树花粉类型。
PINE 松树属于树花粉类型。
CYPRESS_PINE 柏松属于树类花粉类型。
HAZEL 榛树属于树类花粉类型。
GRAMINALES 草本植物属于草类花粉类型。
RAGWEED 豚草属于杂草花粉类型。
MUGWORT 艾蒿属于杂草花粉类型。

PlantDescription

包含有关植物的一般信息,包括其季节性变化、特殊形状和颜色的详细信息、有关过敏交叉反应的信息以及植物照片。

JSON 表示法
{
  "type": enum (PollenType),
  "family": string,
  "season": string,
  "specialColors": string,
  "specialShapes": string,
  "crossReaction": string,
  "picture": string,
  "pictureCloseup": string
}
字段
type

enum (PollenType)

植物的花粉类型。例如:“GRASS”。您可以在此处找到所有可用代码的列表。

family

string

以人类可读的方式表示的植物系列名称。示例:“白杨木科(桦树科)”。

season

string

对有花粉的季节的说明文字列表。例如:“冬末、春季”。

specialColors

string

植物的文字说明叶子、树皮、花朵或种子的颜色,有助于识别植物。

specialShapes

string

植物的文字说明叶子、树皮、花朵或种子的形状,以帮助识别植物。

crossReaction

string

花粉交叉反应植物的文字说明。示例:桤木、榛树、鹅耳枥、山毛榉、柳树和橡树花粉。

picture

string

指向植物图片的链接。

pictureCloseup

string

指向植物特写照片的链接。