获取天气地图(实验性)

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

条款

这些条款是根据《Google Maps Platform 服务专用条款》第 6 条(正式发布前产品条款)发布的,并已获得 Google 和您的同意。

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)下显示。