获取天气地图(实验性)

mapTypes 端点提供表示各种天气现象(例如降水预报)的光栅地图图块。这些地图图块可以叠加到标准 Google 地图上。

条款

这些条款是根据 Google 与您达成的协议,依据《Google Maps Platform 服务专用条款》第 6 条(非正式版产品条款)发布的。

1.1 提供方说明要求。如果客户使用 Weather API 中的 Google 地图内容,则必须按照文档中的规定向 Google 提供提供方信息。

1.2 限制。客户不得使用从 Weather API 检索到的 Google 地图内容来重新创建 Google 服务或产品(例如,不得在天气应用或天气模型中使用从 Weather API 检索到的数据,因为这些应用或模型的主要目的是提供天气信息)。

1.3 缓存。客户可以在适用的缓存期内临时缓存 Weather API 中的适用 Google 地图内容,如表 1.3.1(缓存权限)中所述。

表 1.3.1(缓存权限)

这些权限是 Google Maps Platform 服务专用条款表 17.2.1 中所述权限的补充。

Google 地图内容 缓存周期
天气地图图块 1 小时,之后客户必须删除缓存的 Google 地图内容

天气地图请求简介

如需请求天气地图,请向以下网址发送 HTTP GET 请求:

https://weather.googleapis.com/v1/mapTypes/{map_type}/mapTiles/{zoom}/{x}/{y}

地图类型

Weather API 支持不同的天气地图类型,这些类型对应于不同的底层天气模型和地理区域:

  • US_PRECIPITATION_CURRENT:美国高分辨率降水临近预报。
  • EU_PRECIPITATION_CURRENT:高分辨率欧洲降水临近预报。

下方的覆盖范围地图显示了提供天气地图图块的区域:

天气地图图块覆盖范围

图块坐标系

该 API 使用标准的 Web 墨卡托地图块坐标系。如需全面了解地图和图块坐标,请参阅路线图图块和地图和图块坐标。

在此系统中:

  • zoom:缩放级别(0 到 16)。缩放级别 0 表示整个世界使用单个图块渲染(20 x 20 = 1 个图块)。缩放级别 z 将世界划分为 2z x 2z 的图块网格。
  • x:图块的 X 坐标(列),范围从 0(最西)到 2缩放级别 - 1(最东)。
  • y:图块的 Y 坐标(行),范围从 0(最北)到 2缩放级别 - 1(最南)。

显示天气地图

如需使用 Google Maps JavaScript API 在 Web 应用中显示这些图块,您可以创建自定义 google.maps.ImageMapType:

const weatherMapType = new google.maps.ImageMapType({
  getTileUrl: function(coord, zoom) {
    const mapType = "US_PRECIPITATION_CURRENT";
    return `https://weather.googleapis.com/v1/mapTypes/${mapType}/mapTiles/${zoom}/${coord.x}/${coord.y}`;
  },
  tileSize: new google.maps.Size(256, 256),
  maxZoom: 16,
  minZoom: 0,
  name: "Weather"
});

// Overlay on existing map
map.overlayMapTypes.insertAt(0, weatherMapType);

天气地图请求示例

以下示例请求了新奥尔良的美国降水天气地图图块:

curl -o tile.png -X GET "https://weather.googleapis.com/v1/mapTypes/US_PRECIPITATION_CURRENT/mapTiles/12/1025/1688?key=API_KEY"

响应是二进制的。JSON 封装容器仅在特定序列化设置(例如 ?alt=json)下显示。