Method: forecast.lookup

每天最多可返回 5 天内的花粉量信息,涵盖超过 65 个国家/地区,分辨率最高可达 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

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

请求正文

请求正文必须为空。

响应正文

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

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)

此列表将包括(最多)三种影响请求中指定位置的花粉类型(草、杂草、树)。

plantInfo[]

object (PlantInfo)

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

日期

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

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

相关类型:

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

链接到该植物的特写图片。